base64 + AES 前端加密解密代码实现

本文介绍了如何在前端使用AES算法进行加密和解密,通过预设的16位密钥和偏移量iv进行操作。加密过程中包括字节替代、行位移、列混淆和加密等步骤,最后使用Base64编码。解密则按相反顺序还原字符。密钥在前后端代码中固定,避免了在网络传输中的安全性问题。
摘要由CSDN通过智能技术生成

加密和解密双方约定一个是密钥key,一个是偏移量iv (都是16位),决定使用对称加密算法AES去解决。

加密时使用:ENCRYPT_MODE,解密时使用:DECRYPT_MODE,以加密为例,在AES函数内部进行以下操作:
例如 P = D(K, C),其中C为密文,K为密钥,P为明文。
1.第一步,把明文C和密钥K作为解密函数的参数输入。
2.第二步,经过AES算法的字节替代方法(通过S盒完成一个字节到另外一个字节的映射),将原来的字符替换成别的无任何意义的字符。
3.第三步,通过约定的偏移量,进行替换后的字符矩阵的行位移,进一步打乱字符。
4.第四步,将第三步得到的字符串进行列混淆(列混合变换是通过矩阵相乘来实现的,经行移位后的状态矩阵与固定的矩阵相乘,得到混淆后的状态矩阵),从而进一步打乱字符。
5.第五步,将第四步得到的字符根据密钥进行加密操作,返回加密后的字节数组,然后进行Base64编码
解密的过程则是从后往前一步一步还原字符

其中密钥为接收方与发送方协商产生并写入前后端代码中,不会直接在网络上传输,所以不会导致传输中密钥泄漏,是很安全的加密方式。

1.页面引入js

 <script type="text/javascript" src="js/crypto-js.js"></script>

2.加密函数

var key= '' ;
var iv= '' ;
var test= '' ;
//test是明文
en
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值