MD5和SHA1 5

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MD5和SHA1 5相关的知识,希望对你有一定的参考价值。

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

​update()​​方法默认字符串编码为​​UTF-8​​,也可以传入Buffer。

如果要计算SHA1,只需要把​​md5​​改成​​sha1​​,就可以得到SHA1的结果​​1f32b9c9932c02227819a4151feed43e131aca40​​。

还可以使用更安全的​​sha256​​和​​sha512​​。

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...

只要密钥发生了变化,那么同样的输入数据也会得到不同的签名,因此,可以把Hmac理解为用随机数“增强”的哈希算法。

以上是关于MD5和SHA1 5的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发-MD5加密SHA1加密

Mac终端快捷生成md5/sha

MD5/SHA1/Hmac_SHA1

MD5,sha1,sha256分别输出多少位啊?

MD5、sha1、sha256分别输出多少位?

哈希算法之md5和sha1