Шифрование Переменной В Delphi -> Расшифровка В Php

  • Автор темы laspavel
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

laspavel

#1
Помогите решить такую задачу:

Нужно защифровать определенную переменную Stroka (тип String) с паролем Passw (тип String) причем так чтобы после передачи его
на сервер (Методом POST) его можно было расшифровать с помощью пароля Passw средствами PHP в исходную строку.

Заранее спасибо.
 

nayke

Well-known member
04.08.2010
310
0
#2
Помогите решить такую задачу:

Нужно защифровать определенную переменную Stroka (тип String) с паролем Passw (тип String) причем так чтобы после передачи его
на сервер (Методом POST) его можно было расшифровать с помощью пароля Passw средствами PHP в исходную строку.

Заранее спасибо.
чем помочь?
 

sinkopa

Well-known member
17.06.2009
344
4
#3
Помогите решить такую задачу:
Нужно защифровать определенную переменную Stroka (тип String) с паролем Passw (тип String) причем так чтобы после передачи его
на сервер (Методом POST) его можно было расшифровать с помощью пароля Passw средствами PHP в исходную строку.
В Delphi
Код:
uses
EncdDecd;


function EncodeText(text: AnsiString; password: AnsiString): AnsiString;
var
i, passLen,textLen: integer;
sign: shortint;
begin
passLen := Length(password);
textLen := Length(text);
if (passLen = 0) or (textLen = 0) then
Exit;

sign := 1;
SetLength(Result,textLen);
{ Паролим строчку }
for i := 1 to textLen do
Result[i] := chr(ord(text[i]) + sign * ord(password[i mod passLen + 1]));

{ кодируем в base64 для исключения опасных
запрещенных к передаче по HTTP протоколу символов}
Result := EncodeString(Result);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
S,Pass: AnsiString;
begin
S := 'Hello world!';
Pass := 'MysupperPassword';

MessageBox(Handle, PAnsiChar(EncodeText(S,Pass)), 'Запароленная строчка', MB_OK +
MB_ICONINFORMATION + MB_TOPMOST);
end;
На сервере:
PHP:
<?php
##############################################################################
## secret_decode_test.php												  ##
##############################################################################

$str = 'wdjh3N+F6b/T39eY'; //$str = $_POST['secrettext'];
$pass = 'MysupperPassword';

echo decodeText($str,$pass);

function decodeText($str,$pass){
$sign = -1;
$str = base64_decode($str);
$strLen = strlen($str);
$passLen = strlen($pass);

for ($i = 0; $i < $strLen; $i++) {
$str[$i] = chr(ord($str[$i]) + $sign * ord($pass[$i%$passLen + 1]));
}
return $str;
}
?>
 
L

laspavel

#4
В Delphi
Код:
uses
EncdDecd;


function EncodeText(text: AnsiString; password: AnsiString): AnsiString;
var
i, passLen,textLen: integer;
sign: shortint;
begin
passLen := Length(password);
textLen := Length(text);
if (passLen = 0) or (textLen = 0) then
Exit;

sign := 1;
SetLength(Result,textLen);
{ Паролим строчку }
for i := 1 to textLen do
Result[i] := chr(ord(text[i]) + sign * ord(password[i mod passLen + 1]));

{ кодируем в base64 для исключения опасных
запрещенных к передаче по HTTP протоколу символов}
Result := EncodeString(Result);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
S,Pass: AnsiString;
begin
S := 'Hello world!';
Pass := 'MysupperPassword';

MessageBox(Handle, PAnsiChar(EncodeText(S,Pass)), 'Запароленная строчка', MB_OK +
MB_ICONINFORMATION + MB_TOPMOST);
end;
На сервере:
PHP:
<?php
##############################################################################
## secret_decode_test.php												  ##
##############################################################################

$str = 'wdjh3N+F6b/T39eY'; //$str = $_POST['secrettext'];
$pass = 'MysupperPassword';

echo decodeText($str,$pass);

function decodeText($str,$pass){
$sign = -1;
$str = base64_decode($str);
$strLen = strlen($str);
$passLen = strlen($pass);

for ($i = 0; $i < $strLen; $i++) {
$str[$i] = chr(ord($str[$i]) + $sign * ord($pass[$i%$passLen + 1]));
}
return $str;
}
?>
Спасибо большое. Буду разбираться.
Вопрос: А что за библиотека EncdDecd ?
 
Статус
Закрыто для дальнейших ответов.