本文最后更新于$day天前,文中所描述的信息可能已发生改变。
此方法可以自定义长度秘钥,但是与其他语言可能不兼容,因为用了scryptSync生成一个128位的密码。
此方法用ECB加密,所以无需IV向量,但是可以在scryptSync生成秘钥时第二个参数加入slat值。
此方法生成为base64输出,pkcs5padding填充。
可以使用在一些简单加密上,使用方法也简单,避免接触复杂的crypto类。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| const crypto = require('crypto'); const enckey = "自定义密码";
function genSign(src) { const key = crypto.scryptSync(enckey, '', 16); let sign = ''; const cipher = crypto.createCipheriv('aes-128-ecb', key, null); sign += cipher.update(src, 'utf8', 'base64'); sign += cipher.final('base64'); return sign; }
function deSign(sign) { const key = crypto.scryptSync(enckey, '', 16); let src = ''; const cipher = crypto.createDecipheriv('aes-128-ecb', key, null); src += cipher.update(sign, 'base64', 'utf8'); src += cipher.final('utf8'); return src; }
|