const
Codes64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/';
function Encode64(S: string): string;
var
i: Integer;
a: Integer;
x: Integer;
b: Integer;
begin
Result := '';
a := 0;
b := 0;
for i := 1 to Length(s) do
begin
x := Ord(s);
b := b * 256 + x;
a := a + 8;
while a >= 6 do
begin
a := a - 6;
x := b div (1 shl a);
b := b mod (1 shl a);
Result := Result + Codes64[x + 1];
end;
end;
if a > 0 then
begin
x := b shl (6 - a);
Result := Result + Codes64[x + 1];
end;
end;
function Decode64(S: string): string;
var
i: Integer;
a: Integer;
x: Integer;
b: Integer;
begin
Result := '';
a := 0;
b := 0;
for i := 1 to Length(s) do
begin
x := Pos(s, codes64) - 1;
if x >= 0 then
begin
b := b * 64 + x;
a := a + 6;
if a >= 8 then
begin
a := a - 8;
x := b shr a;
b := b mod (1 shl a);
x := x mod 256;
Result := Result + chr(x);
end;
end
else
Exit;
end;
end;
функция Delphi в php (просьба помоч)
В php можно сказать ток сеня начал ковыряццо..... так работаю в основном с delphi. Возникла необходимость сделать аналогичные функции шифровки для правильного понимания клиента и сервера друг с другом. если не сложно помогите переделать код, ато думаю оч долго придеться ковырятся с синтаксисом:
блин мне не нужна куча методов шифрования.... мне нужно чтобы клиент мог расшифровать то что зашифровал скрипт, и наоборот.... т.е. результат выполнения функций должен быть одинаковым.
http://vladimirkim.livejournal.com/674.html) готовый пример обратимого шифрования.
9-ая ссылка (
Цитата: mataor
В php можно сказать ток сеня начал ковыряццо..... так работаю в основном с delphi. Возникла необходимость сделать аналогичные функции шифровки для правильного понимания клиента и сервера друг с другом. если не сложно помогите переделать код, ато думаю оч долго придеться ковырятся с синтаксисом:
это ж base64?
тогда читай маны - http://ru2.php.net/base64_decode
Цитата: Тень Пса
это ж base64?
тогда читай маны - http://ru2.php.net/base64_decode
тогда читай маны - http://ru2.php.net/base64_decode
в том то и дело что ет не base64... хотя и похоже на него но результат другой... из-за этого то и проблемка
Цитата: alekciy
9-ая ссылка (http://vladimirkim.livejournal.com/674.html) готовый пример обратимого шифрования.
tcxj раз повторю мне нужно чтобы клиент и скрипт на сайте друг друга понимали
Код:
function encode64($encode) {
$b64chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/";
$a = 0;
$b = 0;
for($i=0; $i<strlen($encode); $i++) {
$x = ord($encode[$i]);
$b = $b * 256 + $x;
$a += 8;
while ( $a >= 6 ){
$a -= 6;
$x = $b / (1 << a);
$b = $b % (1 << a);
return ($b64chars[$x + 1]);
}
}
if ($a > 0){
$x = $b << (6 - $a);
return ($b64chars[$x + 1]);
}
}
$b64chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/";
$a = 0;
$b = 0;
for($i=0; $i<strlen($encode); $i++) {
$x = ord($encode[$i]);
$b = $b * 256 + $x;
$a += 8;
while ( $a >= 6 ){
$a -= 6;
$x = $b / (1 << a);
$b = $b % (1 << a);
return ($b64chars[$x + 1]);
}
}
if ($a > 0){
$x = $b << (6 - $a);
return ($b64chars[$x + 1]);
}
}
но на выходе ничего не получаю...
и кстать как на php правильно организовать Result := Result + Codes64[x + 1]; и целочисленное деление (div в delphi)?
a div b - это вроде бы то же, что и floor($a/$b)
Цитата: int
$Result += $Codes64[x + 1];
a div b - это вроде бы то же, что и floor($a/$b)
a div b - это вроде бы то же, что и floor($a/$b)
сорри неправильно сказал... Result ет то что возвращяет функция по окончанию своей работы, т.е. не сразу при вызове оной а когда пройдет все циклы.... блин пока писал сам допер.... писать в переменную а птом уже в конце ее возвращять