我们目前正在筹划一个人们可以上传电影的网站。在观看YouTube时,您会注意到某些电影上传了两次或更多次(由不同的用户)。为了扩展我们的应用程序,我们正在考虑以下想法:
问:我们如何使用JavaScript分析文件以获取SHA256哈希值,SHA256是否足够好,还是应该考虑SHA512(或其他算法)?
答案 0 :(得分:6)
使用HTML5文件API读取文件:http://www.html5rocks.com/en/tutorials/file/dndfiles。这是一个用于计算SHA-256的JS代码:http://www.webtoolkit.info/javascript-sha256.html
我必须补充一点,我从未尝试过,但似乎有可能。 Alxandr是对的,大型视频需要很长时间,但您可以尝试使用WebWorker API以免冻结浏览器:http://html5rocks.com/en/tutorials/workers/basics
答案 1 :(得分:1)
暂时放置文件,如果问题实际上是否可以在JavaScript中获得SHA-256哈希,答案是肯定的。您可以自己重新设置(不好主意)或使用像Stanford JS Crypto library这样的库(好主意)。
就File API而言,它是在每个主要桌面浏览器的最新版本以及最新的Android浏览器发布中实现的。 iOS不受支持,因为它没有真正的文件系统。查看caniuse.com了解最新统计信息。
答案 2 :(得分:-1)
简单回答,你不能。也就是说,如果你想至少支持所有浏览器。我认为Chrome和FireFox都支持在客户端上读取文件,并且IE在ActiveX控件的帮助下支持它,但是为了获得适用于所有浏览器的解决方案,您必须使用Flash或Silverlight等插件。此外,在进行视频幅度(大+文件)的文件上传时,我认为无论如何都要从一开始就使用flash或者喜欢这个,但这只是我的意见。