首页 > 解决方案 > 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

标签: phpangularencryptionangular5cryptojs

解决方案


推荐阅读