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>
相关推荐
深色風信子10 小时前
Vue 富文本编辑器
前端·javascript·vue.js·wangeditor·vue 富文本·wangeditor-text·前端富文本
Chasing Aurora10 小时前
Python连接云端Linux服务器进行远程 (后端开发/深度学习)时候的注意事项
linux·开发语言·python·ubuntu·ai编程
key0610 小时前
从数据安全体系逆推数据自由度的权力本质
java·开发语言
C++ 老炮儿的技术栈10 小时前
用密码学安全随机数生成256位密钥
c语言·开发语言·c++·windows·安全·密码学·visual studio
z***438410 小时前
java与mysql连接 使用mysql-connector-java连接msql
java·开发语言·mysql
道路与代码之旅10 小时前
“变量也能是函数?——论 Kotlin 中那些会说话的变量,以及它们如何让代码少说废话”
android·开发语言·kotlin
白露与泡影10 小时前
大厂Java面试前复习的正确姿势(800+面试题附答案解析)
java·开发语言·面试
程序定小飞10 小时前
基于SpringBoot+Vue的常规应急物资管理系统的设计与实现
java·开发语言·vue.js·spring boot·后端·spring
8***293110 小时前
Go环境搭建(vscode调试)
开发语言·vscode·golang
songgz11 小时前
双向流式 JSON 解析架构:并行优化大型文件处理
java·开发语言·json