为了账号安全,请及时绑定邮箱和手机立即绑定

关于C#.Net怎么获取文件Hash值

关于C#.Net怎么获取文件Hash值

ABOUTYOU 2019-04-09 20:24:43
开发要判断文件的唯一性,所以要获取Hash。在github上有go和php的实现方法,但是两种语言都看不懂,无法转换,官方能发布C#.Net获取文件Hash的方法吗。
查看完整描述

2 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

七牛的hash/etag算法是公开的。算法大体如下:
如果你能够确认文件<=4M,那么hash=UrlsafeBase64([0x16,sha1(FileContent)])。也就是,文件的内容的sha1值(20个字节),前面加一个byte(值为0x16),构成21字节的二进制数据,然后对这21字节的数据做urlsafe的base64编码。
如果文件>4M,则hash=UrlsafeBase64([0x96,sha1([sha1(Block1),sha1(Block2),...])]),其中Block是把文件内容切分为4M为单位的一个个块,也就是BlockI=FileContent[I*4M:(I+1)*4M]。
这是非常简单的一个公式,你完全可以自己依据算法说明写一个hash/etag的代码。
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 1085 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信