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

JavaScript016

如何通过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').valu

MD5叫作信息抽样加密,这个加密是不可逆的,就是说不能通过加密后的数据还原成原数据

这个有时候会用在密码的判断上,使用MD5存储的密码就是管理员也不知道用户的密码是多少,在数据库里面是使用MD5加密后的字符串存储的,验证的时候是将用户输入的密码再次以MD5加密,然后和存储在数据库里的原字符串比较

JS判断,一般是客气端的验证,一般用来判断是否为空,两次输入的密码是否一样,它不会读取数据库,也不能可能和存储在数据库中的数据进行验证~~

MD5中的MD代表Message Digest,就是信息摘要的意思,不过这个信息摘要不是信息内容的缩写,而是根据公开的MD5算法对原信息进行数学变换后得到的一个128位(bit)的特征码。

1、D5就是求字符串的md5,文件就是一个字符串;

2、前台目前就别考虑读文件内容了(大部分浏览器不行) 都让后台做;

可以直接看nodeclub源代码,如下:

var crypto = require('crypto')

exports.encrypt = function (str, secret) {

var cipher = crypto.createCipher('aes192’, secret)

var enc = cipher.update(str, 'utf8’, ‘hex’)

enc += cipher.final(‘hex’)

return enc

}

exports.decrypt = function (str, secret) {

var decipher = crypto.createDecipher('aes192’, secret)

var dec = decipher.update(str, 'hex’, ‘utf8’)

dec += decipher.final(‘utf8’)

return dec

}

exports.md5 = function (str) {

var md5sum = crypto.createHash(‘md5’)

md5sum.update(str)

str = md5sum.digest(‘hex’)

return str

}

exports.randomString = function (size) {

size = size || 6

var code_string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’

var max_num = code_string.length + 1

var new_pass = '’

while (size >0) {

new_pass += code_string.charAt(Math.floor(Math.random() * max_num))

size–

}

return new_pass

}