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>
相关推荐
在角落发呆几秒前
跨越网络鸿沟:传统文件传输与现代内网穿透的奇妙交响
开发语言·php
Season4504 分钟前
C++之模板元编程(前置知识 constexpr)
开发语言·c++
坚定信念,勇往无前5 分钟前
electron-vite 安装better-sqlite3
javascript·数据库·electron
AI玫瑰助手6 分钟前
Python运算符:比较运算符(等于不等等于大于小于)与返回值
android·开发语言·python
@菜菜_达13 分钟前
jquery.inputmask插件介绍
前端·javascript·jquery
摸鱼小李上线了28 分钟前
vue项目页面添加水印实现方法
前端·javascript·vue.js
计算机安禾29 分钟前
【c++面向对象编程】第40篇:单例模式(Singleton)的多种C++实现
开发语言·c++·单例模式
砍材农夫34 分钟前
物联网 基于netty构建mqtt协议规范(主题通配符订阅)
java·前端·javascript·物联网·netty
_日拱一卒44 分钟前
LeetCode:114二叉树展开为链表
java·开发语言·算法
天天进步20151 小时前
从零打造 Python 全栈项目:智能教学辅助系统
开发语言·人工智能·python