那里有许多MD5 JavaScript实现.有谁知道哪一个是最先进的,最错误的,最快的?
我需要它用于这个工具.
如何写functionToGenerateMD5hash这段代码?我已经有了fileVideo,我需要通过单击按钮将此文件的md5哈希发送到服务器.
$("#someButton").click(function() {
var fr = new FileReader();
fr.onload = function(e) {
string md5 = functionToGenerateMD5hash(e.target.result);
// send md5 here
};
fr.readAsArrayBuffer(fileVideo);
Run Code Online (Sandbox Code Playgroud) 我使用php下载文件,我希望文件在成功完成下载后自动从服务器上删除.我在php中使用此代码.
$fullPath = 'folder_name/download.txt';
if ($fd = fopen ($fullPath, "r")) {
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
header("Content-type: application/octet-stream");
header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
header("Content-length: $fsize");
header("Cache-control: private"); //use this to open files directly
$fd = fopen ($fullPath, "r");
while(!feof($fd)) {
$buffer = fread($fd, 2048);
echo $buffer;
}
fclose ($fd);
}
unlink($fullPath);
Run Code Online (Sandbox Code Playgroud)
您可以在下载后在代码中看到我取消链接文件.但如果我这样做了损坏的文件被下载.因为有时文件会在完全下载之前被删除.无论如何在php中知道客户端成功下载文件然后我可以删除它吗?任何想法都将受到高度赞赏.
我正在构建一个网页,我需要一个多文件上传实现,可以在将文件上传到服务器之前对文件进行哈希处理.
这个想法是用户可以上传服务器上已存在或可能不存在的文件.为了节省带宽,我希望在将文件上传到服务器之前对文件进行哈希处理,通过POST发送哈希值,并且只有在服务器响应它没有带有此哈希的文件时才继续上传.
是否有任何基于Flash的免费实现(我认为JavaScript无法加载文件并将其哈希)可能对我有用?
问题:
如何正确生成校验和,这是独立的,一致的,独立于浏览器?另外,我想将SHA256/MD5校验和字符串转换为64位.
如何在没有大量RAM要求的情况下正确读取文件以生成校验和?即我们如何在不影响RAM的情况下处理1 GB文件
例如,是否可以在不将文件加载到内存的情况下读取文件?(见答案)
这个项目似乎很有希望,但也无法实现.
我的目的是在X MB的块中逐步/递增地生成校验和.这可能有助于避免一次使用太多RAM.
以下是代码,它没有按预期工作:
let SIZE_CHECKSUM = 10 * Math.pow(1024, 2); // 10 MB; But can be 1 MB too
async function GetChecksum (file: File):
Promise<string>
{
let hashAlgorithm: CryptoJS.lib.IHasher<Object> = CryptoJS.algo.SHA256.create();
let totalChunks: number = Math.ceil(file.size / SIZE_CHECKSUM);
for (let chunkCount = 0, start = 0, end = 0; chunkCount < totalChunks; ++chunkCount)
{
end = Math.min(start + SIZE_CHECKSUM, file.size);
let resultChunk: string = await (new Response(file.slice(start, end)).text());
hashAlgorithm.update(resultChunk);
start …Run Code Online (Sandbox Code Playgroud) 可能没有答案,但我还是会问,因为我在谷歌找不到任何东西.我有一个使用php和HTML5创建的文件上传网站.我知道,使用HTML5分块系统,我可以通过检查服务器上传了哪个块来进行某种暂停和恢复文件上传.但它要求用户尝试上传相同的文件才能使其正常工作.
现在,我想知道无论如何,在用户首次尝试上传该文件时,获取用户的完整文件路径,以便将该路径保存到数据库中.如果发生了什么事,在网站上我可以告诉用户点击这里继续(然后因为我有文件路径,我可以自动提交,而不是要求用户再次尝试浏览该文件).
我知道如果使用java我们能够做到这一点(使用签名证书),但无论如何使用优选的php或javascript或html5才能做到这一点.我正在努力避免使用java.或者也许是其他语言?
注意:此文件上传用于大量上传(范围从1MB到4GB文件),到目前为止它完全正常.我只是想在这个项目中添加暂停/恢复功能.
我不介意购买可靠的证书或smtg为此工作
或者无论如何,也许使用silverlight来获取文件路径,然后在我有文件路径之后,以html格式自动提交它以便我的php处理暂停恢复功能
谢谢
我必须从前端上传文件并计算该文件的md5哈希值。我尝试使用crypto.js生成md5,但对于图像,它给了我错误的md5。我看到了一个名为onlinemd5.com的网站,而这正是我所需要的。
谁能帮助我如何使用JavaScript计算文件(文本文件,图像,视频等)的md5哈希值?是否可以从http://onlinemd5.com下载代码并实施该代码?
注意:我尝试了如何使用javascript计算文件的md5哈希中的一些建议,但没有用。
$scope.upld = function(element){
$scope.files = element.files;
var file = $scope.files[0];
var reader = new FileReader();
reader.onload = function(){
$scope.md5_val = CryptoJS.MD5(reader.result);
$scope.upload_file();
$scope.$apply();
};
reader.readAsBinaryString(file);
};
Run Code Online (Sandbox Code Playgroud)
crypto.js没有正确计算图像md5。我没有尝试sparkmd5 js。
可能重复:
如何使用javascript计算文件的md5哈希
我可以在发送到php页面之前在javascript中将密码转换为md5吗?
是否有任何函数或方法使用JavaScript加密字符串作为PHP中的散列?我要求用户设置密码,我不希望有密码以字符串格式来到服务器上,然后再对php进行哈希处理.
javascript ×6
md5 ×4
file-upload ×3
hash ×3
php ×3
algorithm ×1
checksum ×1
html ×1
html5 ×1
node.js ×1
performance ×1
sha256 ×1
typescript ×1
upload ×1