加密解密字符
const crypto = require('crypto');
function encrypt(str, key){
if (typeof str == 'object') {
str = JSON.stringify(str);
}
try {
const cipher = crypto.createCipheriv('aes-256-cbc', key, key.substring(0, 16));
cipher.setAutoPadding(true);
return cipher.update(String(str), 'utf8', 'hex') + cipher.final('hex');
} catch(e) {
return '';
}
}
function decrypt (str, key) {
try {
const decipher = crypto.createDecipheriv('aes-256-cbc', key, key.substring(0, 16));
decipher.setAutoPadding(true);
return decipher.update(String(str), 'hex', 'utf8') + decipher.final('utf8');
} catch(e) {
return '';
}
}
var key = '12345678901234567890123456789012';
var str = encrypt('1234567890abcdefghigklmnopqrstuvwxyz!@#$%^&*(){}:"<>?|', key);
console.log(str);
str = decrypt(str, key);
console.log(str);
PHP版本
<?php
function encrypt($str, $key) {
$iv = substr($key, 0, 16);
$data = openssl_encrypt($str, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
return bin2hex($data);
}
function decrypt($str, $key) {
$iv = substr($key, 0, 16);
return openssl_decrypt(hex2bin($str), 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
}
$key = '12345678901234567890123456789012';
$str = encrypt('1234567890abcdefghigklmnopqrstuvwxyz!@#$%^&*(){}:"<>?|', $key);
echo "$str\r\n";
$str = decrypt($str, $key);
echo "$str\r\n";
aes-256-cbc 加解密
NodeJS加解密之Crypto
Was this article helpful to you?
Yes
No