测试代码及结果如下:
立即学习“PHP免费学习笔记(深入)”;
PHP:
echo md5(file_get_contents('test.torrent'));
//e699b0e7535cebc1b10de1613d6797fb
Python:
print hashlib.md5(open("test.torrent").read()).hexdigest()
#7cc752c88ae69677afe59ee7c3300e9d
Javascript:
var dragAndDrop = function(){
if (!window.File || !window.FileList || !window.FileReader) {
return false;
}
var ignoreDrag = function(e) {
e.originalEvent.stopPropagation();
e.originalEvent.preventDefault();
}
var drop = function(e) {
ignoreDrag(e);
var dt = e.originalEvent.dataTransfer;
var droppedFiles = dt.files;
$.each(droppedFiles, function(index, file) {
decodeFile(file);
});
}
$('body')
.on('dragenter', ignoreDrag)
.on('dragover', ignoreDrag)
.on('drop', drop);
};
var decodeFile = function(file) {
var fileReader = new FileReader();
var fileData = fileReader.readAsBinaryString(file);
fileReader.onload = function(){
var fileData = this.result;
console.log(CryptoJS.MD5(fileData));
}
}
dragAndDrop();
//393fe44680d69ea00fd0a4a2fb3fa8c5
测试代码及结果如下:
立即学习“PHP免费学习笔记(深入)”;
PHP:
echo md5(file_get_contents('test.torrent'));
//e699b0e7535cebc1b10de1613d6797fb
Python:
print hashlib.md5(open("test.torrent").read()).hexdigest()
#7cc752c88ae69677afe59ee7c3300e9d
Javascript:
var dragAndDrop = function(){
if (!window.File || !window.FileList || !window.FileReader) {
return false;
}
var ignoreDrag = function(e) {
e.originalEvent.stopPropagation();
e.originalEvent.preventDefault();
}
var drop = function(e) {
ignoreDrag(e);
var dt = e.originalEvent.dataTransfer;
var droppedFiles = dt.files;
$.each(droppedFiles, function(index, file) {
decodeFile(file);
});
}
$('body')
.on('dragenter', ignoreDrag)
.on('dragover', ignoreDrag)
.on('drop', drop);
};
var decodeFile = function(file) {
var fileReader = new FileReader();
var fileData = fileReader.readAsBinaryString(file);
fileReader.onload = function(){
var fileData = this.result;
console.log(CryptoJS.MD5(fileData));
}
}
dragAndDrop();
//393fe44680d69ea00fd0a4a2fb3fa8c5
根据你在问题评论中补充的信息,Python 2 版与 PHP 版的不同很容易理解了:
file_get_contents 是 binary safe 的;正确的 Python 2 & 3 代码如下:
hashlib.md5(open("test.torrent", 'rb').read()).hexdigest()
CryptoJS 这个东西是第三方的。提问者没有提供,因此无法测试。
我做了一下测试,两种python的方法,一种javascript的方法,加一种是Linux shell命令,得出来的MD5都是一样的。PHP没测试,但我相信也应该一样。 python方法一:
import md5
m = md5.new("xxx\n")
print m.hexdigest()
结果是:6de9439834c9147569741d3c9c9fc010
python方法二:
import hashlib
h = hashlib.md5("xxx\n")
print h.hexdigest()
结果也是:6de9439834c9147569741d3c9c9fc010
javascript的MD5,我从这下载的:http://www.myersdaily.org/joseph/javascript/md5.js,第101行有个语法错误,加上var即可。得出的结果跟上面的结果一样。
Linux shell:
md5sum xxx回车后按ctrl + D
打印出来的结果同上。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号