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>
相关推荐
任子菲阳1 天前
学Java第四十五天——斗地主小游戏创作
java·开发语言·windows
G***T6911 天前
React性能优化实战,避免不必要的重渲染
前端·javascript·react.js
缪懿1 天前
JavaEE:多线程基础,多线程的创建和用法
java·开发语言·学习·java-ee
网络点点滴1 天前
标签的ref属性
前端·javascript·vue.js
Boop_wu1 天前
[Java EE] 多线程 -- 初阶(2)
java·开发语言·jvm
IT_Beijing_BIT1 天前
Rust入门
开发语言·后端·rust
青山的青衫1 天前
【Java基础07】链表
java·开发语言·链表
麦麦鸡腿堡1 天前
Java事件处理机制
java·开发语言·python
5***79001 天前
Swift进阶
开发语言·ios·swift
独自破碎E1 天前
从括号匹配到字符串解码:递归思想的巧妙应用
android·java·开发语言