Как правильно расшифровать `aes-256-ctr` в PHP с помощью` openssl` - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь зашифровать и расшифровать некоторую строку в PHP с помощью следующего кода:

$form_data_str = 'random string generated for testing';
  $algorithm = 'aes-256-ctr';
  $sKey = '1lgs2gjwjPZpeqUHlYD9ktJBXfsuH5al'; 
  $iv = 'gKySztfUMx7uQEl7';

  // Encrypt
  $encrypted_data = bin2hex(openssl_encrypt($form_data_str, $algorithm, $sKey, OPENSSL_RAW_DATA, $iv));
  echo "Encrypted: ".$encrypted_data;
  //Decrypt
  $decrypted_data =bin2hex(openssl_decrypt($encrypted_data, $algorithm, $sKey, OPENSSL_RAW_DATA, $iv));
  echo "Decrypted: ".$decrypted_data;

Но вывод:

Encrypted: e10eff36816e73b1b68154b665f5661553fa3be89b022beea74174aeacb956d6109fa1
Decrypted: f65ea137886560f4fac20bbd35e663415fa971b8da532df8f71b60bbeeea14974cc2a0ed4b7035692f9f451d789c91673e62091db970159d8d4036700b414418bb8a2d4a71ed

Как правильно расшифровать эти зашифрованные данные, чтобы показать исходную строку?

1 Ответ

0 голосов
/ 31 октября 2018

Попробуйте код ниже Вам нужно использовать функцию pack для реверсирования bin2hex.

 $form_data_str = 'random string generated for testing';
      $algorithm = 'aes-256-ctr';
      $sKey = '1lgs2gjwjPZpeqUHlYD9ktJBXfsuH5al'; 
      $iv = 'gKySztfUMx7uQEl7';

      // Encrypt
      $encrypted_data = bin2hex(openssl_encrypt($form_data_str, $algorithm, $sKey, OPENSSL_RAW_DATA, $iv));
      echo "Encrypted: ".$encrypted_data;
      //Decrypt
      $decrypted_data = openssl_decrypt(pack('H*', $encrypted_data), $algorithm, $sKey, OPENSSL_RAW_DATA, $iv);
      echo "<br>Decrypted: ".$decrypted_data;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...