用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

也许现在有什么想法?

谢谢!

php mcrypt openssl,用OpenSSL取代Mcrypt相关推荐

  1. mcrypt java_使用openssl解密mcrypt

    由于mcrypt被认为是过时的,我的任务是升级当前代码以使用openssl . 听起来很简单,但......经过几天的尝试和失败后,我觉得自己很疯狂 . 我的问题是:你有什么方法可以用之前用mcryp ...

  2. centos7 安装 openssl和openssl升级

    一.环境 centos7,openssl-1.1.1g.tar.gz 二.安装步骤 1.下载最新版本: https://mirrors.cloud.tencent.com/openssl/source ...

  3. OpenSSL 使用openssl工具搭建私有CA

    SSL(安全套接层)是为网络通讯提供安全及数据完整性的一种安全协议,TLS(SSL的继承版本)与SSL在传输层对网络连接进行加密. SSL用以保障在数据传输的安全利用数据加密技术,可确保数据在网络上之 ...

  4. centos php mcrypt,CentOS下安装Php mcrypt扩展方法

    PHP程序员们在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障.PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库Mcrypt和Mhash. 其 ...

  5. linux交叉编译openssl,交叉编译openssl for linux arm-v5te-linux-gnueabi工具链

    我遇到了同样的问题并写了一本关于如何交叉编译openssl for arm的手册 . 我希望本手册能给你一些想法: 这个过程非常简单 . 在本手册中,我们将给出一个在Ubuntu Linux系统中交叉 ...

  6. 关于 ubuntu上qt5.9.3使用openssl出现“openssl unsupport platform” 的解决方法

    欢迎技术交流和帮助,提供IT相关服务,索要源码请联系博主QQ: 21497936,若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 ...

  7. php openssl加密数据长度,PHP使用openssl解密数据(用mcrypt加密)

    所以我不需要评论3DES不安全和ECB不好等等,我们知道,这就是为什么我们试图解密,以有一个更好的加密算法. 我在下面提供了使用mcrypt进行加密的代码,以及我们试图使用的1行代码(openssl) ...

  8. 【OpenSSL】OpenSSL之SHA

    00. 目录 文章目录 00. 目录 01. SHA-1介绍 02. SHA-0和SHA-1 2.1 SHA-0的破解 2.2 SHA-1的破解 03. OpenSSL中SHA 04. SHA1测试 ...

  9. 【OpenSSL】OpenSSL之MD5

    00. 目录 文章目录 00. 目录 01. MD5简介 02. 发展历史 03. MD5应用场景 04. OpenSSL中MD5 05. MD5测试代码 06. 附录 01. MD5简介 MD5信息 ...

最新文章

  1. mysql repair 索引_mysql 删除行会重建索引吗
  2. java 注解使用_Java 注解用法
  3. java掌握_掌握Java 11的Constantdynamic
  4. oracle中如何创建dblink
  5. Alibaba Nacos 服务消费者工程接入nacos并实现调用服务提供者工程
  6. 【LintCode】算法题 1443. 最长AB子串
  7. Java自动化测试框架-03 - TestNG之Test Group篇 - (详细教程)
  8. 返回通知异常通知环绕通知
  9. 6.这就是搜索引擎:核心技术详解 --- 链接分析
  10. 区块链 预言机 Oracle是什么 例子
  11. 注册DLL文件命令的使用方法及详细说明
  12. 指数函数为例的超越函数的逼近拟合误差分析
  13. 总有几位老师让你一生感激不尽----老师侯捷
  14. 数学基础(5)凸优化、最优化理论基础
  15. chrome浏览器更新后重新安装配置chromedriver
  16. win7鼠标右键无响应修复
  17. Windows安装Mysql提示无法定位程序输入点fesetround于动态链接库的解决方案
  18. SkeyeRTSPLive传统视频监控互联网实现利器解决方案
  19. ROS集成开发环境 --- RoboWare(安装及学习笔记)
  20. 【算法小结】费马小定理

热门文章

  1. 华为终端的野心:欲做第二个高通?
  2. 蝉知CMS本地迁移到服务器具体步骤
  3. 321电分——各种不对称短路时故障处的短路电流和电压
  4. 机器学习算法--欧几里得距离、余弦距离和曼哈顿距离的计算
  5. DOM基于inpho软件二次加工的出图方法
  6. 基于easyX和vs使用c++绘制坐标系以及实时显示
  7. ug五轴编程视频教程
  8. 点击button会自动刷新页面??
  9. eyou隐藏升级弹窗、云插件库、接口配置、功能开关【按需显示插件】
  10. 你是谁的无价之宝?(真正懂得你价值的人在哪里?)