Document the project structure and setup while excluding local dependencies and IDE settings. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
60 lines
1.6 KiB
JavaScript
60 lines
1.6 KiB
JavaScript
var crypro_js = require("crypto-js");
|
|
|
|
|
|
var source_data = "你好,世界!"
|
|
var aes_key = "1234567890abcdef"
|
|
var iv = "abcdef1234567890";
|
|
|
|
|
|
var byte_iv = crypro_js.enc.Utf8.parse(iv);
|
|
var key = crypro_js.enc.Utf8.parse(aes_key);
|
|
var data = crypro_js.enc.Utf8.parse(source_data);
|
|
|
|
function aes_ecb_encrypt() {
|
|
var encrypted = crypro_js.AES.encrypt(data, key, {
|
|
mode: crypro_js.mode.ECB, // 工作模式
|
|
padding: crypro_js.pad.Pkcs7 // 填充模式
|
|
})
|
|
return btoa(encrypted.toString()); // base64 返回
|
|
|
|
}
|
|
|
|
function aes_ecb_decrypt() {
|
|
var encrypt_data = atob(aes_ecb_encrypt());
|
|
|
|
var decrypted = crypro_js.AES.decrypt(encrypt_data, key, {
|
|
mode: crypro_js.mode.ECB, // 工作模式
|
|
padding: crypro_js.pad.Pkcs7 // 填充模式
|
|
})
|
|
return decrypted.toString(crypro_js.enc.Utf8);
|
|
}
|
|
|
|
|
|
console.log("密文结果: ", aes_ecb_encrypt())
|
|
console.log("明文结果: ", aes_ecb_decrypt())
|
|
|
|
function aes_cbc_encrypt() {
|
|
|
|
var encrypted = crypro_js.AES.encrypt(data, key, {
|
|
iv: byte_iv,
|
|
mode: crypro_js.mode.CBC, // 工作模式
|
|
padding: crypro_js.pad.Pkcs7 // 填充模式
|
|
})
|
|
return btoa(encrypted.toString());
|
|
|
|
}
|
|
|
|
function aes_cbc_decrypt() {
|
|
var encrypt_data = atob(aes_cbc_encrypt());
|
|
|
|
var decrypted = crypro_js.AES.decrypt(encrypt_data, key, {
|
|
iv: byte_iv,
|
|
mode: crypro_js.mode.CBC, // 工作模式
|
|
padding: crypro_js.pad.Pkcs7 // 填充模式
|
|
})
|
|
return decrypted.toString(crypro_js.enc.Utf8);
|
|
}
|
|
|
|
|
|
console.log("CBC 密文结果: ", aes_cbc_encrypt());
|
|
console.log("CBC 明文结果: ", aes_cbc_decrypt()); |