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

Тема в разделе "Pascal and Delphi", создана пользователем laspavel, 3 дек 2012.

Статус темы:
Закрыта.
  1. laspavel

    laspavel Гость

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

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

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

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    чем помочь?
     
  3. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    В Delphi
    Код (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;
    }
    ?>
     
  4. laspavel

    laspavel Гость

    Спасибо большое. Буду разбираться.
    Вопрос: А что за библиотека EncdDecd ?
     
  5. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    :) <Каталог установки Delphi>\Source\Internet\EncdDecd.pas
    Просто впишите в uses
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей