前端JS框架CryptoJS如何与后台PHP程序代码进行AES相互加解密

文章介绍了一个考勤系统开发中遇到的需求,即后台使用PHP返回加密数据给前端,前端解密后展示。为了实现这一功能,采用了CryptoJS库进行AES加密(CBC模式),并提供了前端加密和后端解密的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在开发考勤系统的时修改,碰到这样一个需求,后台返回的数据需要加密返回给前端,前端收到返回数据后进行解密再显示,为解决这个问题,需要写一个前后端都能相互加密解密的方法,首先我们就想到了CryptoJS,因为里面自带AES加密和解密各种模式,如CBC等,我们后端代码使用的是PHP,需要前后端能互相加密和解密,代码如下:

// AES加密
// Author: 考勤系统www.daytime.cc
function aesEncrypt(str) {
	var KEY = 'www.daytime.cc';
	var IV = CryptoJS.MD5(KEY).toString();
	var encrypted = CryptoJS.AES.encrypt(str, CryptoJS.enc.Utf8.parse(KEY.substring(0,16)), {
		iv: CryptoJS.enc.Utf8.parse(IV.substring(0,32)),
		mode: CryptoJS.mode.CBC
	});
	return s;
}

后端的PHP代码如下:

// AES解密  与前端JS加密配合使用
// Author: 考勤系统www.daytime.cc
function aesDecrypt($string, $mode = 'AES-128-CBC', $len = 32){
	if(!$string)return '';
	$key = substr('www.daytime.cc', 0, $len);
	$iv = substr(md5('www.daytime.cc'), 0, $len);
	$data = openssl_decrypt($string, $mode, $key, 0, $iv);
	return trim($data);
}

实现前后端相互加密解密后,后台可以直接返回加密后的代码,前端解密显示,如下图:
加密后返回前端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值