Обновление моей библиотеки шифрования с McRypt до OpenSSL
Могу ли я обновить свою библиотеку шифрования с McRypt до OpenSSL? В OpenSSL можно ли расшифровать данные, зашифрованные с McRypt? Два разных сообщения предоставляют противоречивую информацию.
вопрос: можно ли обновить мою библиотеку шифрования от McRypt до OpenSSL? Если да, то как?
answer: yes, можно обновить библиотеку шифрования от McRypt до OpenSsl.
Вопрос: can I Decrypt Data Sincrypted McRypt, используя openssl? Чтобы расшифровать данные, зашифрованные с помощью McRypt с использованием OpenSsl.
здесь пример кода того, как вы можете расшифровать данные, зашифрованные с помощью McRypt, используя OpenSSL:
публичная функция Decrypt ($ data, $ key) {&&? $ salt = substr ($ data, 0, 128); $ enc = substr ($ data, 128, -64); $ mac = substr ($ data, -64); список ($ cipherkey, $ mackey, $ iv) = $ this-> getKeys ($ salt, $ key); if ($ mac! == hash_hmac ('sha512', $ enc, $ mackey, true)) { вернуть ложь; } $ dec = openssl_decrypt ($ enc, $ this-> cipher, $ cipherkey, openssl_raw_data, $ iv); вернуть $ dec; } ]
Дополнительные примечания:public function decrypt($data, $key) { $salt = substr($data, 0, 128); $enc = substr($data, 128, -64); $mac = substr($data, -64); list ($cipherKey, $macKey, $iv) = $this->getKeys($salt, $key); if ($mac !== hash_hmac('sha512', $enc, $macKey, true)) { return false; } $dec = openssl_decrypt($enc, $this->cipher, $cipherKey, OPENSSL_RAW_DATA, $iv); return $dec; }
] функция openssl_decrypt () требует, чтобы параметр IV был такой же длиной, что и размер блока, используемый шифром. openssl_decrypt () функция в режиме CBC.
$] [
«Это секретный ключ»,
'G906M70P (IHZA5T & 5X7 (W0�31) U) �E79CIYJQ! IP2U (XT13Q6) TJ6GZ3D2WI & 0 ") 7CP5',
Chr (6). Chr (200). Chr (16). «Мой ключ». Chr (3). Chr (4). Chr (192). Chr (254). 'Zyx0987 !!',
'И, наконец, еще один ключ, чтобы проверить здесь:',
];
$ data = [
'A',
«Это тест»,
«Теперь тестируйте шифрование чего -то немного дольше с 1234567890».
'$ length = mcrypt_get_block_size (mcrypt_blowfish, mcrypt_mode_cbc); $ last = ord ($ data [strlen ($ data) - 1]); ',
'Lorem Ipsum Dolor Sit Amet, Adipiscing Elit. Donec Sit Amet Pharetra Urna. Весенбул ипсум primis в сфере Faucibus oructus et ultrices posuere cubilia curae; UT Fringilla, Quam Sed Eleifend Eleifend, Юсто Турпис -Консектур Tellus, Quis Tristique Eros Erat в Nibh. NUNC DICTUM NEQUE VEL DIAM RALESTIE FERMENTUM. Pellentesque Dignissim dui Quis Tortor Eleifend, UT Maximus Elit Egestas. Donec Posuere Odio et auctor porta. Квинк -Placerat Condimentum Maximus. Curabitur Luctus Dolor Eget Sem Luctus, в Dignissim Tortor Venenatis. Маврис Эйт Nulla Nisl. ',
];
$ неудачи = 0;
foreach ($ data as $ datum) {
foreach ($ keys as $ key) {
$ enc = новое шифрование (mcrypt_blowfish, mcrypt_mode_cbc);
$ incrypted = $ enc-> incrypt ($ datum, $ key);
$ dec = new EncryptionOpenssl ('bf-cbc');
$ decrypted = $ dec-> decrypt ($ зашифровано, $ key);
if (strcmp ($ datum, $ decrypted)! == 0) {
Echo "шифрование с ключом '$ key' of $ datum 'не удалось.
$ неудачи;
}
}
}
if ($ неудачи) {
Echo "$ неудачи не удалились.
\ n";
} еще {
Эхо "Все в порядке
\ n";
} ]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3