是否可以计算文件';使用Javascript的SHA1 ID?

是否可以计算文件';使用Javascript的SHA1 ID?,javascript,sha1,Javascript,Sha1,如果在发布表单之前可以这样做,那么我就不必将文件上传到服务器上了……要做到这一点,您必须将文件的二进制信息加载到JavaScript中。这是不可能的 但是在JavaScript中实现SHA1。不,您不能使用JavaScript从本地计算机访问文件 您必须先将其上载到服务器,然后检查文件的校验和。不是本机的,不是,这是个坏主意。文件中的每个字节都必须通过Javascript加载到内存中,您需要一种方法将其加载到内存中 如果你必须这样做,并且你已经有办法将文件的二进制信息放入你的脚本中,那么你就可以

如果在发布表单之前可以这样做,那么我就不必将文件上传到服务器上了……

要做到这一点,您必须将文件的二进制信息加载到JavaScript中。这是不可能的


但是在JavaScript中实现SHA1。

不,您不能使用JavaScript从本地计算机访问文件


您必须先将其上载到服务器,然后检查文件的校验和。

不是本机的,不是,这是个坏主意。文件中的每个字节都必须通过Javascript加载到内存中,您需要一种方法将其加载到内存中


如果你必须这样做,并且你已经有办法将文件的二进制信息放入你的脚本中,那么你就可以使用第三方脚本了,例如。

使用SHA1是可能的,尽管性能不是最好的

对于任何超过几百KB的内容,您必须运行一些基准测试,并确定它是否确实是一个可行的解决方案

有关良好的实现,请参阅(passpack和许多操作系统项目都使用它)

编辑:
正如其他人已经回答的那样,实际获取文件内容可能是一件完全不同的事情-因此,除非您使用Google Gears或Adobe AIR之类的工具,否则这几乎是不可能的。

实际上,您现在可以读取客户端文件的内容,只要在文件上传字段中选择,并且您正在使用Firefox。请参见阵列。然后,您确实可以将其散列,尽管它可能相当慢


有关示例和紧凑的SHA-1实现,请参阅。

您可以使用Java小程序来实现这一点。我从未使用过任何一个,但是有相当多的Java上传小程序。哈希算法本身在Java中可用,可以通过Java.security.MessageDigest访问。如果客户机没有可用的Java插件,您可以故障恢复到服务器上的常规上载和哈希


附带说明:根据您对文件进行哈希处理的原因,您可能希望在上传后在服务器上重新对其进行哈希处理,而不是信任客户端。

可以使用HTML5文件界面读取本地文件:


然后您可以使用Crypto.js之类的库来完成对读取文本的哈希。

第二个链接的可能副本被破坏。与sha1的固定链接:@JohnFeminella thx供您评论:您知道这些家伙是如何计算SHA的吗: