aes php加密 js解密代码
以下是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加密库。
crypto_js_crypto_js__WEBPACK_IMPORTED_MODULE_13___default.a.createDecipheriv is not a function
at VueComponent.aes_decrypt 报错了