Вызов SQL с использованием JDBC

Как мы можем видеть, вы пытаетесь сравнить тот, который явно закодирован с использованием hex. Другой - с базой64.

в php

  • позволяет отложить просадку (это делается автоматически).
  • не выполняют base64_encode (что вы еще не сделали в delphi).

php manual

Описание:


string mcrypt_encrypt (строка $ cipher, string $ key, string $ data, string $ mode [, string $ iv])

Шифрует данные и возвращает их.

......

data

Данные, которые будут зашифрованы с помощью данного шифра и режима. Если размер данных не является n * blockize, данные будут дополняться «\ 0».

Возвращенный криптотекст может быть больше, чем размер данных, данных данными.

Режим ECB игнорирует IV, поэтому вводить пример в пример, используя MCRYPT_MODE_ECB и IV (пример в руководстве показывает то же самое). Кроме того, важно знать, что ECB полезен для случайных данных, но структурированные данные должны использовать более сильный режим, например MCRYPT_MODE_CBC

php Code

function encrypt($input) {
    // $iv = mcrypt_create_iv(32);
    $mcr = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, "KRPTTT101103",
                          $input, MCRYPT_MODE_ECB);
    $hex2 = bin2hex($mcr); // Convert binary data into hexadecimal representation
    return strtoupper($hex2);
    // base64_encode($mcr);
    }

$encryptedhextext = encrypt("sifrelenecek");

 if ($encryptedhextext == "FBE4A4405D6C1B54503D9B213E41AE56" ) {
   echo   "Encrypted Hex text in Delphi and php are equal<br />";    
   echo $encryptedhextext." == FBE4A4405D6C1B54503D9B213E41AE56";
 }

Выход

Шифрованный текст Hex в Delphi и php равны FBE4A4405D6C1B54503D9B213E41AE56 == FBE4A4405D6C1B54503D9B213E41AE56

0
задан user3357595 25 February 2015 в 17:54
поделиться