开发要判断文件的唯一性,所以要获取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的代码。
添加回答
举报
0/150
提交
取消