преобразование C # Rfc2898DeriveBytes в PHP с помощью openssl_encrypt

Я пытаюсь сделать скрипт кодирования в 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 );

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]