php字符串加密,js使用CryptoJS

后端加密

复制代码
<?php
function encryptString($data, $key) {
    $iv = openssl_random_pseudo_bytes(16);
    $encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
    $result = base64_encode($iv . $encrypted);
    return $result;
}

$key = "YourSecretKey"; // 替换为您自己的密钥
$data = "Hello, World!";
$encryptedData = encryptString($data, $key);

echo $encryptedData;
?>

前端解密:

crypto下载地址

https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.2.tgz

前端代码

复制代码
<script>
function decryptString(encryptedData, key) {
	const rawData = CryptoJS.enc.Base64.parse(encryptedData);
	const iv = CryptoJS.lib.WordArray.create(rawData.words.slice(0, 4));
	const ciphertext = CryptoJS.lib.WordArray.create(rawData.words.slice(4));

	const decrypted = CryptoJS.AES.decrypt(
		{ ciphertext },
		CryptoJS.enc.Utf8.parse(key),
		{ iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }
	);

	return decrypted.toString(CryptoJS.enc.Utf8);
}

const key = "YourSecretKey";
const u = decryptString("后端加密后的字符串", key);
</script>
相关推荐
U***498332 分钟前
React Native性能分析
javascript·react native·react.js
和和和35 分钟前
🗣️面试官: 那些常见的前端面试场景问题
前端·javascript·面试
joker丶牧羊人36 分钟前
搭建Hyperf本地开发环境之Docker容器开发
后端·docker·php
San301 小时前
ES6+ 新特性解析:让 JavaScript 开发更优雅高效
前端·javascript·ecmascript 6
Heo1 小时前
简单聊聊webpack摇树的原理
前端·javascript·面试
San301 小时前
深入理解 JavaScript 异步编程:从 Ajax 到 Promise
javascript·ajax·promise
机灵猫2 小时前
java锁:从 Mark Word 锁升级到 AQS
java·开发语言
Watermelo6172 小时前
href 和 src 有什么区别,它们对性能有什么影响?
前端·javascript·vue.js·性能优化·html·html5·用户体验
AAA阿giao2 小时前
大厂面试之反转字符串:深入解析与实战演练
前端·javascript·数据结构·面试·职场和发展·编程技巧
扶尔魔ocy2 小时前
【QT opencv】手动去噪--网格化获取区域坐标
开发语言·qt·opencv