【PHP-JS-AES对称加密解密代码实现】利用JS的CryptoJS 3.x和php的openssl_encrypt,openssl_decrypt实现AES对称加密解密,由于需要两种语言对同一字符串的操作,而CryptoJS 的默认加密方式为“aes-256-cbc”,PHP端也使用aes-256-cbc方式解密 。JS端的AES加密解密在CryptoJS 的官网
https://cryptojs.gitbook.io/docs/,有示例代码,我稍加改造,主要功能是利用默认的加密方式,将任意内容(数组,对象,字符串等)转成加密字符串 。后面两个方法可以忽略 。
![PHP-JS-AES对称加密解密代码实现](http://img.jiangsulong.com/220430/1225294440-0.jpg)
文章插图
aes-format.js
加密后生成一个JSON字符串,第一个是密文,第二个是偏移量,第三个是加盐字符串 。使用示例如下:
![PHP-JS-AES对称加密解密代码实现](http://img.jiangsulong.com/220430/12252a3X-1.jpg)
文章插图
js-example.js
PHP服务端加密解密原数据可以是JS端的加密字符串,也可以解密PHP加密的数据 。为此封装了一个AES类,实现加密解密两个方法 。与上面的JS代码一一对应 。
![PHP-JS-AES对称加密解密代码实现](http://img.jiangsulong.com/220430/12252914E-2.jpg)
文章插图
CryptoJsAes.php
加密解密方式与JS端一致,同样会得到JSON字符串 。使用方法如下:
![PHP-JS-AES对称加密解密代码实现](http://img.jiangsulong.com/220430/12252aT6-3.jpg)
文章插图
test.php
推荐阅读
- Java中数字签名,非对称加密实现方式
- Java加密解密算法世界
- 小孩磕到下巴牙齿不对称怎嘛办
- 啥是非对称加密
- DES/3DES/AES 三种对称加密算法实现
- 对称还是非对称——https中到底使用了啥?
- 宝宝眼珠不对称
- 对称加密与非对称加密实战
- 腹肌不对称是怎么回事
- 小孩眼睛不对称怎么办?