Я пытаюсь сделать скрипт кодирования в php с помощью метода aes-128-cbc, используя openssl_encrypt для работы с C #, но зашифрованный код, который я получаю, соответствует только частично.
Я нашел эту ссылку о aes-256-cbc и попытался исправить ее с помощью моих скриптов aes-128-cbc, но не смог этого сделать.
https://medium.com/rabbit-mobile-business-blog/writing-c-s-rfc2898derivebytes-in-php-88fa8c096dcb
Я думаю, что $ AESKeyLength = $ соответствует [1] >> 3;
часть неверна, но не знаю, как правильно ее настроить.
Любой советует сделать эту работу?
PHP-код
$pass = AES_KEY;
$salt = SALT_KEY;
$method = 'AES-128-CBC';
if (preg_match("/([0-9]+)/i", $method, $matches)) {
$AESKeyLength = $matches[1] >> 3;
}
$AESIVLength = openssl_cipher_iv_length( $method );
$pbkdf2 = hash_pbkdf2('sha1', $pass , mb_convert_encoding( $salt, 'UTF-8' ), 1000, $AESKeyLength + $AESIVLength, TRUE);
$key = substr($pbkdf2, 0, $AESKeyLength);
$iv = substr($pbkdf2, $AESKeyLength, $AESIVLength);
$consumer_key_enc = openssl_encrypt( $consumer_key , $method , $key , 0 , $iv );
Задача ещё не решена.
Других решений пока нет …