我正在寻找使用Mcrypt的简单但加密强大的AES实现AES.

希望将其归结为一对简单的函数,$garble = encrypt($key,$payload)和$payload = decrypt($key,$garble).

解决方法:

我最近正在学习这个主题,并将此答案作为社区维基发布,以分享我的知识,有待纠正.

我的理解是,使用Mcrypt可以使用以下常量作为选项来实现AES:

MCRYPT_RIJNDAEL_128 // as cipher

MCRYPT_MODE_CBC // as mode

MCRYPT_MODE_DEV_URANDOM // as random source (for IV)

在加密期间,应使用随机化的非秘密初始化向量(IV)来随机化每个加密(因此相同的加密永远不会产生相同的加密).该IV应附加到加密结果,以便在解密期间稍后使用.

结果应为Base 64编码,以实现简单的兼容性.

执行:

define('IV_SIZE', mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC));

function encrypt ($key, $payload) {

$iv = mcrypt_create_iv(IV_SIZE, MCRYPT_DEV_URANDOM);

$crypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $payload, MCRYPT_MODE_CBC, $iv);

$combo = $iv . $crypt;

$garble = base64_encode($iv . $crypt);

return $garble;

}

php mcrypt aes,简单的PHP加密/解密(Mcrypt,AES)相关推荐

  1. (三)Kotlin加密/解密之AES和DES

    Kotlin加密/解密系列 (一)Kotlin加密/解密之ASCII码 (二)Kotlin加密/解密之凯撒加密算法 文章目录 Kotlin加密/解密系列 前言 一.加密算法 二.Base64编码 1. ...

  2. getcoo php_PHP简单实现DES加密解密的方法

    本文实例讲述了PHP简单实现DES加密解密的方法.分享给大家供大家参考,具体如下: des加密: function des_encrypt($str, $key) { $block = mcrypt_ ...

  3. mcrypt php 加密解密,mcrypt启用 加密以及解密过程详细解析

    Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原. 1.PHP加密扩展库Mcrypt安装在标准的PHP安装过程中并没有把Mrcypt安装上,但PHP的主目录下包含了libmc ...

  4. Java简单实现DES加密解密算法

    Java简单实现DES加密解密算法 文章目录 Java简单实现DES加密解密算法 DES算法介绍 实现相关java类 代码实现 DES算法介绍 DEC加密算法属于对称加密,即利用指定的密钥,按照密码的 ...

  5. 小工具分享----Java简单的文字加密解密

    今天有空自己制作了一个jar包,用于实现java中简单的文字加密解密功能,保存可用于以后需要的项目中,再也不用耗时间去网上找资源了,值得收藏!戳这里---------https://download. ...

  6. AES 128位CBC加密解密(不使用固定IV)

    安全检查时要求账号和密码加密后才能存到数据库中,要求加密算法如下: 1)分组密码算法:AES(密钥长度在128位及以上)(GCM或CBC模式) 2)流密码算法:AES(密钥长度在128位及以上)(OF ...

  7. C#.Net中的加密解密(AES、DES、RSA、MD5)、数字证书、HTTPS

    一.信息安全的基本概念,以及为什么要使用加密? 1.信息安全的定义 保密性(Confidentiality)  只有你自己和你允许的人能看到相关的信息. 完整性(Integrity)  信息收发过程中 ...

  8. C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)

    一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ...

  9. aes js 加盐值 解密_crypto-js aes加密解密

    安装 npm install crypto-js --save unit.js import CryptoJS from "crypto-js"; //秘钥 const CRYPT ...

最新文章

  1. 为什么需要 外键 呢?
  2. HDU2085:核反应堆(递推)
  3. Markdown基础语法小结
  4. gperf工具的使用
  5. UVA 1210 Sum of Consecutive Prime Numbers
  6. 大数据之-Hadoop3.x_Yarn_基础架构---大数据之hadoop3.x工作笔记0141
  7. 手动绘制DataTable
  8. getComputedStyle
  9. s400x ugee 驱动_联想_ThinkPad|ThinkCentre|ThinkStation服务与驱动下载_常见问题
  10. 北京圣思园经典Java培训教学视频分享
  11. SNF快速开发平台2020版
  12. 移动端以及 PC浏览器页面分享到朋友圈等的功能实现
  13. MQTT系列 | Retained消息和LWT和Keep Alive
  14. html手机打不开是什么意思,html是什么意思
  15. 一意孤行亚马逊----一个钓鱼疯子的巴西亚马逊之行( 11.9月 27日 最惨的一天 ) 作者:咸水鱼...
  16. kdj超卖_kdj超卖是什么意思?kdj超买超卖区别是什么
  17. 1-4 Linux 标准目录结构FHS
  18. 数据库【MySQL数据库介绍】
  19. es报错:request contains unrecognized parameter [ignore_throttled]
  20. 豆瓣读书top250爬取

热门文章

  1. c语言求ln1加到lnn的平方根,ln函数的运算法则
  2. hohi装修一年后的总结(完整版)_给要装修的人
  3. 环保制作废物利用计算机,生活中的“废物利用”大全!(环保、实用)
  4. 如何使用有限元分析确定角焊缝的尺寸
  5. Winows Server 2019 激活正确姿势!
  6. OpenCV编译错误:/usr/include/c++/5/bits/stl_algobase.h:604:58: ...
  7. Qt 视频上叠加透明图片
  8. 教你如何将CA证书导入Android手机
  9. ROW_NUMBER ( )去重并根据条件保留数据--开窗函数使用
  10. 计算机会计电算化与实训报告,【会计电算化实训报告心得体会_2021年会计实训】- 环球网校...