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>
相关推荐
larance1 分钟前
python中的鸭子类型
开发语言·python
丙寅32 分钟前
微信小程序反编译遇到 TypeError: _typeof3 is not a function
开发语言·javascript·ecmascript
醇氧32 分钟前
MAC 安装openJDK8
java·开发语言
海阔天空在前走35 分钟前
JAVA中六种策略模式的实现
java·开发语言·策略模式
青衫码上行39 分钟前
【Java Web学习 | 第十篇】JavaScript(4) 对象
java·开发语言·前端·javascript·学习
禁默44 分钟前
基于Rust实现爬取 GitHub Trending 热门仓库
开发语言·rust·github
大邳草民1 小时前
深入理解 Python 的属性化方法
开发语言·笔记·python
胎粉仔1 小时前
Swift 初阶 —— Sendable 协议 & data races
开发语言·ios·swift·sendable·并发域·data races
silence_xiang1 小时前
【React】首页悬浮球实现,点击出现悬浮框
前端·javascript·react.js
隔壁的大叔2 小时前
由于vite版本不一致,导致vue组件引入报错
javascript·vue.js