php mcrypt openssl,用OpenSSL取代Mcrypt

用OpenSSL取代Mcrypt

目前我们在我们的系统上有一个mcrypt实现,用于在PHP应用程序中隐藏一些敏感数据。现在我们有了一个新的要求,我们必须将crypt模块更改为openssl。另一件重要的事情是我们使用密码河豚和模式ecb。所以我开始测试有什么区别以及如何使用openssl解密mcrypt加密字符串。

我使用标准的PHP函数:mcrypt_encrypt与openssl_encrypt

mcrypt_decrypt与openssl_decrypt

两种方法都会产生不同的结果。第二件事是在两种类型的给定密码(河豚)和模式(ecb)中需要不同的IV长度(openssl = 0和mcrypt = 56)。

有没有人知道如何在没有大量迁移工作的情况下轻松更改模块?

提前致谢!

更新:

这是代码,我测试了它:<?php

function say($message){

if(!is_string($message)){

if(!isset($_SERVER["HTTP_USER_AGENT"])) echo "

";

echo var_export($message, true) . ((!isset($_SERVER["HTTP_USER_AGENT"]) ? "\n" : "
"));

if(!isset($_SERVER["HTTP_USER_AGENT"])) echo "

";

}else{

echo $message . ((!isset($_SERVER["HTTP_USER_AGENT"]) ? "\n" : "
"));

}}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

也许现在有什么想法?

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值