PHP 7.2中移除Mcrypt的准备工作

因此,随着时间的推移,mcrypt将在PHP7.2中运行。当然,还有一种选择:OpenSSL。

我发现很难从mcrypt切换到OpenSSL,使用AES 256 CBC并保留IVs。我对密码学有点陌生,所以我并不是什么都知道,但我了解基本知识。

假设我有以下代码function encrypt($masterPassword, $data) {

$keySize = mcrypt_get_key_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);

$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);

$iv = mcrypt_create_iv($ivSize, MCRYPT_DEV_URANDOM);

$key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize);

$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $data, MCRYPT_MODE_CBC, $iv);

return base64_encode($iv . $encrypted);}function decrypt($masterPassword, $base64) {

$keySize = mcrypt_get_key_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);

$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);

$key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize);

$data = base64_decode($base64);

$iv = substr($data, 0, $ivSize);

$encrypted = substr($data, $ivSize, strlen($data));

$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_CBC, $iv);

return trim($decrypted);}

如何将此代码“转换”为使用mcrypt中的OpenSSL?

php mcrypt取消,PHP 7.2中移除Mcrypt的准备工作相关推荐

  1. VMware Workstation 与 Hyper-V 不兼容。请先从系统中移除 Hyper-V 角色

    VMware报错:VMware Workstation 与 Hyper-V 不兼容.请先从系统中移除 Hyper-V 角色... 原因是VMware Workstation和Windows的Hyper ...

  2. 不要在viewWillDisappear:方法中移除通知

    都知道viewWillAppear:方法是在控制器的view将要显示的时候调用的,而viewWillDisappear:方法是在控制器的view将要隐藏的时候调用. 这看上去没什么问题,键盘的显示和隐 ...

  3. 尽量不要在viewWillDisappear:方法中移除通知

    本文转自CocoaChina 在了解控制器的生命周期之后,我们都知道viewWillAppear:方法是在控制器的view将要显示的时候调用的,而viewWillDisappear:方法是在控制器的v ...

  4. VMware Workstation 与 Hyper-V 不兼容。请先从系统中移除 Hyper-V 角色,然后再运行 VMware Workstation。

    VMware Workstation 与 Hyper-V 不兼容.请先从系统中移除 Hyper-V 角色,然后再运行 VMware Workstation. 安装好了虚拟机后出现了这个问题. 解决方案 ...

  5. mcrypt cbc php7,PHP7.1中使用openssl替换mcrypt的实例详解

    在php开发中,使用mcrypt相关函数可以很方便地进行AES加.解密操作,但是PHP7.1中废弃了mcrypt扩展,所以必需寻找另一种实现.在迁移手册中已经指出了用openssl代替mcrypt,但 ...

  6. 在idea中移除子模块Moudle后重新导入

    在idea中移除模块并不是真正的移除,重新添加 1.按快捷键:crtl+shift+alt+s 打开 Project Structure 2.点击左侧Moudles 3.点击+号然后点击 import ...

  7. powershell 自动从组中移除禁用的账号

    1.特定组中移除禁用账号 $group= "testgroup" $members = Get-ADGroupMember -Identity $group foreach ($m ...

  8. 从Hadoop集群中移除一块磁盘的操作

    2019独角兽企业重金招聘Python工程师标准>>> 背景 由于历史原因,CDH的hadoop的每个DataNode节点下挂载了多个磁盘,后要对一些配置差的磁盘要用配置较好的新磁盘 ...

  9. 【Linux 内核】实时调度类 ⑦ ( 实时调度类核心函数源码分析 | dequeue_task_rt 函数 | 从执行队列中移除进程 )

    文章目录 一.dequeue_task_rt 函数 ( 从执行队列中移除进程 ) 二.update_curr_rt 函数 ( 更新调度信息 ) 本篇博客中 , 开始分析 struct sched_cl ...

最新文章

  1. Hadoop中Context类的作用和Mapper<LongWritable, Text, Text, LongWritable>.Context context是怎么回事【笔记自用】
  2. 如何优化增强第三方库?
  3. vmware-设置共享文件夹
  4. 尚学堂java 参考答案 第八章
  5. 系统吞吐量评估方法 冯凌圣
  6. 淘宝电商页面和产品海报设计PSD分层素材模板
  7. POJ 2425 A Chess Game(有向图SG函数)题解
  8. 如何对AWS RDS SQL Server数据库进行分类
  9. java常用类有哪些_java中的常用类有哪些
  10. Tomcat配置阿里云免费的SLL证书
  11. golang编译时报错:Get “https://proxy.golang.org/github.com/antihax/optional/@v/v1.0.0.mod“: dial tcp 172.2
  12. 人脸检测(十八)--TinyFace(S3FD,SSH,HR,RSA,Face R-CNN,PyramidBox)
  13. 网络对抗——web基础
  14. C#在winform中页面跳转实现
  15. 负温度相对湿度与绝对湿度换算
  16. 性能测试(二)-重要性能指标TPS、RT
  17. seaborn调色板 color, hls, cubehelix, dark, diverging_palette
  18. java native方法及JNI实例
  19. 大数据培训—DolphinSchedular(一)
  20. (vector)堆积木

热门文章

  1. 管理类联考笔试还是计算机考,管理类联考笔试究竟难在哪儿?
  2. Linux操作系统浅尝辄止
  3. 使用友盟推送,别名(alias)推送
  4. Apple可以改善下一代Apple Watch的4种心率变异性数据的方法
  5. php 接口的token
  6. linux装入u盘分区失败,linux下U盘分区表修复解决识别问题
  7. Python Excel 数组 for循环无法一次性全部删除问题原因解决
  8. 阿里云Code(code.aliyun)提交代码时报错fatal: Authentication failed for‘https://code.aliyun.com/...‘身份验证失败
  9. android webview 自适应屏幕宽度,Android应用开发Android Webview适配屏幕宽度
  10. 抠图,水印,人物精修,加背景-----ps