我们目前正在计划一个人们可以上传电影的网站。查看 YouTube 时,您会注意到某些电影被上传了两次或更多次(由不同的用户)。为了扩展我们的应用程序,我们正在考虑以下想法:
- 用户选择要上传的电影文件
- JavaScript 将从文件中获取 SHA256 哈希值(它比 MD5 哈希值更准确),然后再上传
- 网站将检查哈希值是否已经存在
- 如果哈希值不存在,则上传文件
- 如果散列确实存在,将提示一条消息或将创建对服务器上现有版本的引用。这没有上传视频。
问:我们如何使用 JavaScript 分析文件以获得 SHA256 哈希,SHA256 足够好还是我们应该考虑 SHA512(或其他算法)?
最佳答案
使用 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
关于javascript - 如何在实际上传之前分析即将上传的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8372548/