Skip to content

AES 加密解密

AES(高级加密标准)是一种广泛使用的对称加密算法。

aes.encrypt(text, key, iv)

新增于:Hamibot 1.6.4

将字符串进行 AES 加密,Base64 编码。

参数

名称类型描述
textstring要加密的文本
keystring密钥
ivstringIV,必须 16 位长度的字符串,可用 aes.generateIV() 生成

示例

js
// 加密测试
var text = 'Hello Hamibot!';
var key = 'mySecretKey12345';
var iv = 'initializationVe'; // 必须 16 位长度的字符串

var encrypted = aes.encrypt(text, key, iv); // 需要 Hamibot 1.6.4 及以上版本
log('加密结果:', encrypted); // => Jwm8raYBSDExFLL+Hu0eww==

// 解密测试
var decrypted = aes.decrypt(encrypted, key, iv); // 需要 Hamibot 1.6.4 及以上版本
log('解密结果:', decrypted); // => Hello Hamibot!
hamibot.exit();

aes.decrypt(encrypted, key, iv)

新增于:Hamibot 1.6.4

将字符串(Base64 编码)进行 AES 解密。

参数

名称类型描述
encryptedstring已加密的文本
keystring密钥
ivstringIV,必须 16 位长度的字符串,可用 aes.generateIV() 生成

示例

js
// 加密测试
var text = 'Hello Hamibot!';
var key = 'mySecretKey12345';
var iv = 'initializationVe'; // 必须 16 位长度的字符串

var encrypted = aes.encrypt(text, key, iv); // 需要 Hamibot 1.6.4 及以上版本
log('加密结果:', encrypted); // => Jwm8raYBSDExFLL+Hu0eww==

// 解密测试
var decrypted = aes.decrypt(encrypted, key, iv); // 需要 Hamibot 1.6.4 及以上版本
log('解密结果:', decrypted); // => Hello Hamibot!
hamibot.exit();

aes.generateIV()

新增于:Hamibot 1.6.4

随机生成 16 位长度的字符串,32-126 的 ASCII 字符

示例

js
var iv = aes.generateIV();
log(iv);
hamibot.exit();

自动 IV 嵌入的 AES 加解密实现

封装 AES 加密函数,实现自动生成 IV 并组合到加密结果中

特点:

  1. IV 自动生成且包含在加密结果中
  2. 加密返回字符串格式:[16 位 IV][加密文本]
  3. 解密时自动分离 IV 和加密内容

⚠️ 注意:密钥(key)需要自行保存,加解密需使用相同密钥。

js
// 自动生成 IV 的 AES 加密 (返回格式:IV+加密文本)
function aesEncrypt(text, key) {
  let iv = aes.generateIV(); // 自动生成 16 位 IV
  let encrypted = aes.encrypt(text, key, iv);
  return iv + encrypted; // 组合 IV 和密文
}

// 自动提取 IV 的解密函数
function aesDecrypt(combined, key) {
  let iv = combined.substring(0, 16); // 提取前 16 位作为 IV
  let encrypted = combined.substring(16); // 剩余部分为密文
  return aes.decrypt(encrypted, key, iv);
}

// 使用示例
var text = 'Hello Hamibot!';
var key = 'mySecretKey12345';
var encrypted = aesEncrypt(text, key);
log('加密结果:', encrypted); // => 随机
var decrypted = aesDecrypt(encrypted, key);
log('解密结果:', decrypted); // => Hello Hamibot!
hamibot.exit();

在线 AES 加密解密工具