• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

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

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

laspavel

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

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

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

nayke

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

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

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

чем помочь?
 
S

sinkopa

Помогите решить такую задачу:
Нужно защифровать определенную переменную 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

В 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 ?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!