php - Angular 5和PHP无法使用cryptoJS解密php中的加密变量
问题描述
我正在使用 crypto-js 库将一些加密变量从 angular 5 发送到 PHP。在我将 crypto-aes.php 库添加到我的 php 脚本之前,一切正常。
ngOnInit(){
let user = "am";
let key = "pizza";
let enc = crypto.AES.encrypt(user, key);
//console.log(enc);
let dec = crypto.AES.decrypt(enc, key);
//console.log(dec.toString(crypto.enc.Utf8));
const headerOptions = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
headerOptions.set('Content-Type', 'Access-Control-Allow-Origin')
const params = new HttpParams().set('name', enc)
this.http.post('http://aff.local/test.php', params, {
headers: headerOptions
}).subscribe(
res=>{
console.log(res);
alert(res)
},
error=>{
console.log(error);
}
)
}
这是我的 PHP 脚本:
<?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
header('Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS');
header('Access-Control-Allow-Headers: *');
error_reporting(E_ALL);
include('./cryptojs-aes.php');
ini_set('log_errors', 0);
ini_set('display_errors', 1);
$host = "localhost";
$db = "dentist";
$user = "root";
$pass = "root";
$conn = new PDO("mysql:host={$host};dbname={$db};", $user, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->exec("SET CHARACTER SET utf8mb4");
$enc = $_POST['name'];
$key = "pizza";
$dec = cryptoJSAesDecrypt($key, $enc);
echo $dec;
问题是警报和安慰的结果是null
解决方案
推荐阅读
- react-native - 如何使用辅助函数创建上下文
- python - 构建失败:找不到 CC 的可执行文件?基维,Buildozer
- javascript - 动态更改通过 API 调用的 URL 中的日期
- domino-appdev-pack - 在富文本文档中添加附件
- c++ - 使用 add-subdirectory 访问外部项目导致与导出集相关的 CMake 错误
- java - JPA Criteria API + PostgreSQL 按日期过滤,精确到分钟
- python - 如何从 Django 中的 F() / F() 获取浮点数
- python - 如何在 Wagtail 中添加片段描述
- python - Python:处理多个独立异常
- typescript - 在对象打字稿上添加/重命名键