MD5和SHA1 5

简介: 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理解为用随机数“增强”的哈希算法。


相关文章
|
1月前
浅浅的玩一下这个md
浅浅的玩一下这个md
25 0
浅浅的玩一下这个md
|
算法 安全 数据安全/隐私保护
MD5详解
MD5详解
618 0
MD5详解
S3cmd
一:安装方法 #wget http://nchc.dl.sourceforge.net/project/s3tools/s3cmd/1.0.0/s3cmd-1.0.0.tar.gz    #tar -zxf s3cmd-1.
1660 0
|
Java MySQL 关系型数据库
|
算法 数据安全/隐私保护
|
PHP Java Perl
|
算法 Linux 数据安全/隐私保护
巧用OpenSSL完成md2、md4、md5、rmd160、sha、sha1等的验证
相信很多奋斗在运维战线的小伙伴们经常会遇到版本升级之类的问题。笔者之前所在的公司每次进行版本发布的时候都会附带MD5校验哈希值,每次升级之前一般都要核对MD5哈希值的,刚刚开始的时候对Linux并不是非常熟悉,每次下载完升级包之后都会在Windows环境下利用Hash工具校验之后才上传到Linux服务器上进行版本升级操作。
3480 0