aes php加密 js解密代码

2023-07-21by@1547696395-02pey&@ChatGPT.Model: gpt-3.5
1547696395-02pey

aes php加密 js解密代码

Avatar
Avatar

以下是AES加密的PHP代码和解密的JavaScript代码:

PHP代码(AES加密):

<?php
function aes_encrypt($data, $key) {
    $cipher = "AES-128-CBC";
    $ivlen = openssl_cipher_iv_length($cipher);
    $iv = openssl_random_pseudo_bytes($ivlen);
    $encrypted = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv);
    $hmac = hash_hmac('sha256', $encrypted, $key, true);
    return base64_encode($iv . $hmac . $encrypted);
}

$data = "Hello World";
$key = "my-secret-key";

$encrypted_data = aes_encrypt($data, $key);

echo "Encrypted Data: " . $encrypted_data;
?>

JavaScript代码(AES解密):

function aes_decrypt(data, key) {
    var ciphertext = atob(data);
    var iv = ciphertext.substr(0, 16);
    var hmac = ciphertext.substr(16, 32);
    var encrypted = ciphertext.substr(48);
  
    var decipher = crypto.createDecipheriv('aes-128-cbc', key, iv);
    var decrypted = decipher.update(encrypted, 'binary', 'utf8');
    decrypted += decipher.final('utf8');
  
    return decrypted;
}

var encrypted_data = "encrypted_data_from_php";
var key = "my-secret-key";

var decrypted_data = aes_decrypt(encrypted_data, key);

console.log("Decrypted Data: " + decrypted_data);

请注意,JavaScript代码使用了Node.js的crypto模块,因此需要在服务器端运行。如果您要在浏览器中运行JavaScript代码,请考虑使用CryptoJS库或其他适用于浏览器的AES加密库。

1547696395-02pey

crypto_js_crypto_js__WEBPACK_IMPORTED_MODULE_13___default.a.createDecipheriv is not a function
at VueComponent.aes_decrypt 报错了

Avatar