Skip to content

加密 / 解密

AES

legado.aesEncrypt

AES 加密,返回 Base64 编码的密文。

js
legado.aesEncrypt(data, key, iv?, mode?) → string
参数类型必填说明
datastring明文数据
keystring密钥(UTF-8 字符串)
ivstring初始化向量(UTF-8 字符串)
modestring模式:'CBC'(默认)或 'ECB'

legado.aesDecrypt

AES 解密。

js
legado.aesDecrypt(data, key, iv?, mode?) → string
参数类型说明
datastringBase64 编码的密文
keystring密钥
ivstring初始化向量(UTF-8 字符串)
modestring模式

legado.aesDecryptB64Iv

AES 解密,IV 为 Base64 编码的原始字节。适用于服务端随机生成的二进制 IV。

js
legado.aesDecryptB64Iv(cipher, key, ivB64, mode?) → string

示例

js
// CBC 模式加密
var encrypted = legado.aesEncrypt('hello', 'my-secret-key-16', 'my-iv-string-16', 'CBC');

// CBC 模式解密
var decrypted = legado.aesDecrypt(encrypted, 'my-secret-key-16', 'my-iv-string-16', 'CBC');

// ECB 模式(无 IV)
var encrypted = legado.aesEncrypt('hello', 'my-secret-key-16', '', 'ECB');

// 二进制 IV 解密
var ivB64 = legado.base64ByteSlice(data, 0, 16);   // 从组合数据中提取 IV
var cipher = legado.base64ByteSlice(data, 16);       // 提取密文
var plain = legado.aesDecryptB64Iv(cipher, key, ivB64, 'CBC');

DES

legado.desEncrypt

DES-CBC 加密。

js
legado.desEncrypt(data, key, iv?) → string

legado.desDecrypt

DES-CBC 解密。

js
legado.desDecrypt(data, key, iv?) → string

示例

js
var encrypted = legado.desEncrypt('hello', 'my8bytes', 'my8bytes');
var decrypted = legado.desDecrypt(encrypted, 'my8bytes', 'my8bytes');

基于 MIT 许可发布