请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答

1回答

一般pc/android/ios都有各自的库来计算文件hash的,比如android这个:
https://stackoverflow.com/questions/5980658/how-to-sha1-hash-a-string-in-android

另外,如果是web端的话,一般不建议采用分块上传,因为通过javascript来计算文件hash效率是比较低的,而且较耗内存;所以行业一般做法是,web端支持上传的文件大小有限制,比如最大不超过500MB, 然后采取普通上传的方式完成传输。

当然如果是要在web端进行文件hash计算的话, 一种方法可以通过CryptoJS库来完成, 比如:

<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script>
<script>
  var reader = new FileReader();
  reader.onload = function(event){	
    var res = event.target.result;	
    var sha1 = CryptoJS.SHA1(res).toString();	
    console.log(sha1);
  };
  reader.readAsBinaryString(file);
</script>
0 回复 有任何疑惑可以回复我~
  • 提问者 眼闭则花寂 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-05-15 23:08:29
  • 提问者 眼闭则花寂 #2
    把分块上传集成到web是不是不现实啊,因为客户端端还要运行Go来实现上传
    回复 有任何疑惑可以回复我~ 2019-05-26 14:40:52
  • xiaomo 回复 提问者 眼闭则花寂 #3
    web浏览器端一般不做分块上传。即使做的话也是用js来实现呢,不是golang。
    回复 有任何疑惑可以回复我~ 2019-05-26 14:43:10
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信