php - Angular Crypto-JS 中的加密和 PHP 中的解密 & 反之亦然
问题描述
我正在尝试在 Angular 11 crypto-js(浏览器级别)和 PHP(服务器级别)中实现加密和解密。
随机生成的密钥和IV。
在 angular 和 php 中使用此密钥和 iv 进行加密和解密。
Key - 46d7093c56d9079406754989716a402d
Iv - df9fa46af13e5921
Angular CryptoJS 加密
let msg = "Testing";
let configuration = {
keySize: 128 / 8,
iv: CryptoJS.enc.Utf8.parse(iv),
mode: CryptoJS.mode.CBC
};
let encrypted = CryptoJS.AES.encrypt(msg, key, configuration).toString(); //U2FsdGVkX1+A5bM0Y4epRBtB/A2KYdupCgZXmSSu3hQ=
Angular CryptoJS 解密
let encrypted = "U2FsdGVkX1+A5bM0Y4epRBtB/A2KYdupCgZXmSSu3hQ=";
let configuration = {
keySize: 128 / 8,
iv: CryptoJS.enc.Utf8.parse(iv),
mode: CryptoJS.mode.CBC
};
let decrypted = CryptoJS.AES.decrypt(encrypted, key, configuration).toString(CryptoJS.enc.Utf8);
CryptoJS 的 PHP 加密
$Message = "Testing";
$encrypted = openssl_encrypt($Message, 'AES-128-CBC', $Key, 0, $Iv); #CC06me/4GIHVnoxdYgGTAQ==
$encrypted = openssl_encrypt($Message, 'AES-256-CBC', $Key, 0, $Iv); #cgWrkf8HfdDJg0VybavncQ==
CryptoJS 的 PHP 解密
$Key = "46d7093c56d9079406754989716a402d";
$Iv = "df9fa46af13e5921";
$Encrypted = "CC06me/4GIHVnoxdYgGTAQ==";
$encrypted = openssl_decrypt($Encrypted, 'AES-128-CBC', $Key, 0, $Iv);
$Encrypted = "cgWrkf8HfdDJg0VybavncQ==";
$encrypted = openssl_decrypt($Message, 'AES-256-CBC', $Key, 0, $Iv);
由 angular cryptojs 进行的加密可以通过 angular cryptojs 解密,但不能在 php 中解密。我尝试了多个模块在 PHP 中进行解密,但我无法解密。
谁能建议我在这种解密方法中缺少什么。
提前致谢。
解决方案
推荐阅读
- java - 如何从另一个过程访问记录?
- svg - 带有填充图案的 SVG 缩减路径
- github - Github:如何只授予单个分支的可见性?
- php - 如何从从用户输入标签获取值的php变量中添加css文本颜色值
- php - 如何检查日期是否在一周的两天之间?
- java - 将接口类型的集合注入到使用 @Bean 注释的方法中
- git - 将父分支更改为功能分支
- javascript - 错误:AADSTS500011:在租户中找不到名为“URL”的资源主体
- scala - Spark 任务挂在 [GC (Allocation Failure) ]
- azure - 使用 gMSA 从 ADO 部署到本地 Azure Service Fabric 群集的正确方法是什么?