如何计算java脚本中特定文件的md5
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/md5.js"></script>
<script>
var hash = CryptoJS.MD5("c23a340c2299871541d8a9d2e47bd7d5.wmv");
alert(hash);
</script>
</head>
<body>
</body>
</html>
这是一个示例代码所以在这个我们可以得到MD5的srting我发现像这些例子sevaral但我想它的特定文件,如下面的链接将给md5的文件 This link will calculate the md5 for a file so like this i want the javascript to calculate the md5 for a file
答案 0 :(得分:0)
根据我对散列函数的小理解,你的代码正在做的是给出字符串的散列,你已经说过了。要散列文件的内容,您可能希望将文件读入字节流(不确定这是否是正确的术语),并对结果字节进行散列。
下面是他们的JS代码片段,展示了如何将文件加载到字节流中。
/*
* (c) 2011 by md5file.com. All rights reserved.
*/
function hash_file(file, workers) {
var i, buffer_size, block, threads, reader, blob, handle_hash_block, handle_load_block;
handle_load_block = function (event) {
for( i = 0; i < workers.length; i += 1) {
threads += 1;
workers[i].postMessage({
'message' : event.target.result,
'block' : block
});
}
};
handle_hash_block = function (event) {
threads -= 1;
if(threads === 0) {
if(block.end !== file.size) {
block.start += buffer_size;
block.end += buffer_size;
if(block.end > file.size) {
block.end = file.size;
}
reader = new FileReader();
reader.onload = handle_load_block;
blob = file.slice(block.start, block.end);
reader.readAsArrayBuffer(blob);
}
}
};
buffer_size = 64 * 16 * 1024;
block = {
'file_size' : file.size,
'start' : 0
};
block.end = buffer_size > file.size ? file.size : buffer_size;
threads = 0;
for (i = 0; i < workers.length; i += 1) {
workers[i].addEventListener('message', handle_hash_block);
}
reader = new FileReader();
reader.onload = handle_load_block;
blob = file.slice(block.start, block.end);
reader.readAsArrayBuffer(blob);
}
答案 1 :(得分:0)
作为NotAPro guessed,要获取文件的校验和,本地执行浏览器及其JS引擎需要读取文件内容,这只能满足以下要求:
http://www.html5rocks.com/en/tutorials/file/dndfiles/是如何做到这一点的指南。它对FileList和Blob API有额外的依赖性,但我认为这些依赖于File API。
顺便说一下,我看到这个问题寻找校验和方法(对于cookie中的简单电子邮件地址),我将使用SHA-256算法
http://pajhome.org.uk/crypt/md5/scripts.html。
在那里,保罗还包括一个贡献的sha1_stream()
来源,它可以作为文件/字节流操作的黑客食物。
如果完美是一个问题,我提醒你MD5和SHA1坏了。