MD5、SHA1、HMAC、HMAC_SHA1区别

本文介绍了MD5和SHA1作为散列函数在验证数据完整性中的作用,强调了它们只能确保数据未被篡改。同时,通过对比,阐述了HMAC-SHA1在结合密钥的情况下,不仅能验证数据完整性,还能验证数据的有效性,增加了安全性。HMAC过程涉及到将AccessKeySecret与特定信息进行哈希运算,确保了通信过程的安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.cnblogs.com/fireway/p/5860622.html

MD5/SHA1 都是散列Hash,DST端收到文件/数据以后,自行计算得到Hash值,与SRC端传递过来的Hash值比较,如果一致,说明文件/数据是完整,且没有经过篡改的,注意这个只是验证数据完整性。

很多网站会用例如下列的签名方式,里面用了hmac-sha1,这个与sha1的区别是输入了一个key,这个key是网站预选分配给客户端的,使用key进行加密/Hash,这样服务器端不光是验证数据完整性,同时还能验证数据的有效性。

Authorization = "OSS " + AccessKeyId + ":" + Signature
Signature = base64(hmac-sha1(AccessKeySecret,
            VERB + "\n"
            + Content-MD5 + "\n" 
            + Content-Type + "\n" 
            + Date + "\n" 
            + CanonicalizedOSSHeaders
            + CanonicalizedResource))

BASE64是什么?
将HEX的byte进行6bit->8bit的转换,就是3个字节24个bit,变成4个字节32个bit,为什么做这个?
因为8bit字节的字符当中会有一些不可见字符,例如空格/回车等等,传递到url的字符串当中的话,会出现问题,所以使用ABCD…abcd…1234…等64个可见字符来进行转换表示,字符串长度会变长,也没有加密效果,只是为了字符串可见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值