用OpenSSL取代Mcrypt目前我们在我们的系统上有一个mcrypt实现,用于在PHP应用程序中隐藏一些敏感数据。现在我们有了一个新的要求,我们必须将crypt模块更改为openssl。另一件重要的事情是我们使用密码河豚和模式ecb。所以我开始测试有什么区别以及如何使用openssl解密mcrypt加密字符串。我使用标准的PHP函数:mcrypt_encrypt与openssl_encryptmcrypt_decrypt与openssl_decrypt两种方法都会产生不同的结果。第二件事是在两种类型的给定密码(河豚)和模式(ecb)中需要不同的IV长度(openssl = 0和mcrypt = 56)。有没有人知道如何在没有大量迁移工作的情况下轻松更改模块?提前致谢!更新:这是代码,我测试了它:<?php
function say($message){
if(!is_string($message)){
if(!isset($_SERVER["HTTP_USER_AGENT"])) echo "<pre>";
echo var_export($message, true) . ((!isset($_SERVER["HTTP_USER_AGENT"]) ? "\n" : "<br />"));
if(!isset($_SERVER["HTTP_USER_AGENT"])) echo "</pre>";
}else{
echo $message . ((!isset($_SERVER["HTTP_USER_AGENT"]) ? "\n" : "<br />"));
}}say("= Begin raw encryption");$key = "anotherpass";$str = "does it work";say(" Params:");say(" - String to encrypt '".$str."'");say(" - Key: ".$key);say("");$params = array(
"openssl" => array(
"cipher" => "BF",
"mode" => "ECB",
),
"mcrypt" => array(
"cipher" => "blowfish",
"mode" => "ecb",
),);这是我的结果:= Begin raw encryption Params:
- String to encrypt 'does it work'
- Key: anotherpass= Mcrypt
Params:
- InitVector 06a184909d7bf863 (bin2hex)
- Max keysize 56
- Cipher blowfish - Mode ecb Encryption:
- Encrypted 0e93dce9a6a88e343fe5f90d1307684c (bin2hex)
- Descrypted does it work= Openssl
Params:
- InitVector not needed - Max keysize 0
- Cipher BF - Mode ECB Encryption:
- Encrypted 213460aade8f9c14d8d51947b8231439 (bin2hex)
- Descrypted does it work也许现在有什么想法?谢谢!
3 回答
- 3 回答
- 0 关注
- 490 浏览
添加回答
举报
0/150
提交
取消