💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ### nodejs 加密算法 文档:[https://www.liaoxuefeng.com/wiki/1022910821149312/1023025778520640](https://www.liaoxuefeng.com/wiki/1022910821149312/1023025778520640) 常用算法:[https://github.com/michaelliao/learn-javascript/tree/master/samples/node/crypto](https://github.com/michaelliao/learn-javascript/tree/master/samples/node/crypto) ### MD5和SHA1 MD5是一种常用的哈希算法,用于给任意数据一个“签名”。这个签名通常用一个十六进制的字符串表示: ~~~ const crypto = require('crypto'); const hash = crypto.createHash('md5'); // 可任意多次调用update(): hash.update('Hello, world!'); hash.update('Hello, nodejs!'); console.log(hash.digest('hex')); // 7e1977739c748beac0c0fd14fd26a544 ~~~ ### Hmac Hmac算法也是一种哈希算法,它可以利用MD5或SHA1等哈希算法。不同的是,Hmac还需要一个密钥: ~~~ const crypto = require('crypto'); const hmac = crypto.createHmac('sha256', 'secret-key'); hmac.update('Hello, world!'); hmac.update('Hello, nodejs!'); console.log(hmac.digest('hex')); // 80f7e22570... ~~~ ![](https://box.kancloud.cn/c227a5082b4cb257b00c20b3a00dedd6_544x83.png) 只要密钥发生了变化,那么同样的输入数据也会得到不同的签名,因此,可以把Hmac理解为用随机数“增强”的哈希算法。