JS与PHP使用AES加密信息

一、前言

        公司安全部门要求所有涉及登录信息的个人信息需要进行前端加密传输到后台处理,在网上到处寻找解决方案都失败告终,最后同事花了一天的时间来不断试错来研究前后台解密不一致问题。

二、前端实现

crypto-js 需要的可以去下载

const CryptoJS = require('crypto-js');  //引用AES源码js
const key = CryptoJS.enc.Utf8.parse("ysh425ptjhcpo781"); //十六位十六进制数作为密钥偏移量
const iv = CryptoJS.enc.Utf8.parse('53c5a64c6be84e97'); //十六位十六进制数作为密钥偏移量

    //加密
    function encrypt(text) {
        return CryptoJS.AES.encrypt(text, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        }).toString();
    }

    //解密
    function decrypt(text) {
        var result = CryptoJS.AES.decrypt(text, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        return result.toString(CryptoJS.enc.Utf8)
    }

三、PHP实现

public function testAES()
    {
        $data = "123";
        $key = "ysh425ptjhcpo781";
        $iv = "53c5a64c6be84e97";
        $str = base64_encode(openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA , $iv));
        print_r($str);
    }

四、总结

        使用的代码就这么多是不是很简单,大家想更深入的了解AES加解密原理可以点击查看,谢谢大家的支持!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 JavaScript 中解密 PHP使用 AES 加密的图片需要以下步骤: 1. 从 PHP 中获取加密后的图片数据(base64 编码的字符串)。 2. 使用 JavaScript 的 CryptoJS 库解密字符串。 3. 将解密后的字符串转换成字节数组。 4. 将字节数组转换成二进制数据。 5. 创建一个 Blob 对象,将二进制数据作为参数传入。 6. 使用 URL.createObjectURL() 方法生成一个 URL。 7. 将 URL 赋值给 img 标签的 src 属性。 以下是代码示例: ```javascript // 密钥和 IV var key = CryptoJS.enc.Utf8.parse('1234567890123456'); var iv = CryptoJS.enc.Utf8.parse('1234567890123456'); // 获取加密后的图片数据 var encryptedData = '...'; // base64 编码的字符串 // 解密字符串 var decrypted = CryptoJS.AES.decrypt(encryptedData, key, { iv: iv }); var decryptedData = decrypted.toString(CryptoJS.enc.Utf8); // 将解密后的字符串转换成字节数组 var byteArray = new Uint8Array(decryptedData.length); for (var i = 0; i < decryptedData.length; i++) { byteArray[i] = decryptedData.charCodeAt(i); } // 将字节数组转换成二进制数据 var blob = new Blob([byteArray], { type: 'image/jpeg' }); // 生成 URL 并设置 img 标签的 src 属性 var url = URL.createObjectURL(blob); var img = document.createElement('img'); img.src = url; document.body.appendChild(img); ``` 需要注意的是,上述代码中的密钥和 IV 需要与 PHP使用的相同。并且,由于 AES 加密后的数据可能很大,因此在将解密后的字符串转换成字节数组时,可能需要对字符串进行分块处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余祥伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值