如何通过JS在浏览器端hash出文件的MD5

JavaScript08

如何通过JS在浏览器端hash出文件的MD5,第1张

第一步生成md5 hash串:

var reader = new FileReader()

reader.onload = function(callback) {

var md5 = rstr2hex(binl2rstr(binl_md5(reader.result, reader.result.length)))

}

document.getElementById("xxx").value=md5

第二步:获取生成的md5值

var md5value = document.getElementById('xxx').value

一,有关于JS md5加密:

下载包:

1:md5.js    ;

2: md4.js   ;

3: sha1.js。

二,使用MD5加密的方法:

下载md5.js文件,在网页中引用该文件:

<script type="text/javascript" src="md5.js"></script>

三,在你需要使用MD5加密的地方如此调用:

<script type="text/javascript" >

hash = hex_md5("input string")

</script>

其他两个算法类似。

用javascript加密的好处是可以在客户端完成加密之后传送到服务端,

即可以减轻服务端负担,也可以保证传输的安全。

可以使用crypto-js插件来进行加密的。

我就说一下在node环境中使用吧(直接引入其实也差不多)

1,首先安装crypto-js包:

一般加密的地方都是需要发送ajax,所以最好把ajax再封装一下(这样只要在这里加密就可以了),将封装的ajax文件挂到VUE全局方法(就是在在入口的地方使用Vue.prototype)

2,在ajax文件处引入下面两个文件:

   var CryptoJS = require("crypto-js/core")var MD5 = require("crypto-js/md5") //或者使用ES6 importimport CryptoJS from 'crypto-js/core'import MD5 from 'crypto-js/md5'   

3,最后在需要使用的地方用这“CryptoJS.MD5(需要加密的值)”。

1、可以在内存存储所有文件的MD5值。具体的可以生成一个Map,key值为MD5,value为文件路径。当上传文件时,查看该文件的md5值是否存在于内存的Map,若不存在,则上传文件,同时更新该Map,将该文件存于Map中。否则不需要上传。

2、socket.io采用事件驱动。所以文件的上传的连接、结束以及传送数据都可以作为一个事件来处理。具体的处理可以看下formidable模块。