gpt4 book ai didi

blob - 如何使用CryptoJS获取BLOB的正确SHA1哈希?

转载 作者:行者123 更新时间:2023-12-04 13:51:17 27 4
gpt4 key购买 nike

CryptoJS v3.1.2,sha1.js汇总

在JS中,我想在将Blob发送到服务器之前计算其SHA1。在服务器上,我想计算结果文件的SHA1并将其与从JS接收到的SHA1进行比较。问题是CryptoJS.SHA1()生成的哈希值不正确(总是9844f81e1408f6ecb932137d33bed7cfdcf518a3)

JS代码:

function uploadFileslice (slice) { // slice is a blob
var fileReader = new FileReader()
fileReader.onload = function(event){
var arrayBuffer = event.target.result
var wordArray = CryptoJS.lib.WordArray.create(arrayBuffer)
var sha1crc = CryptoJS.SHA1(wordArray).toString(CryptoJS.enc.Hex)
//etc
requestParams.append('fileslice', slice)
requestParams.append('sha1crc', sha1crc)
//etc
}
fileReader.readAsArrayBuffer(slice)
}

PHP代码:
$file_crc = sha1_file($_FILES['fileslice']['tmp_name']);
if ($_REQUEST['sha1crc'] !== $file_crc) {
echo "Invalid CRC: {$_REQUEST['sha1crc']} (expected $file_crc)";
return;
}

输出:

无效的CRC:9844f81e1408f6ecb932137d33bed7cfdcf518a3(预期3ebe2cd2d8fd8d8f977b6d715f0b1adf5b08b407

我希望有类似myHash = CryptoJS.SHA1(blob)的东西...

最佳答案

根据您提供的信息,我不确定您如何进行设置,但是为了支持ArrayBuffers,您必须包含components/lib-typedarrays-min.js。

https://code.google.com/p/crypto-js/issues/detail?id=67对此进行了讨论。

希望这可以帮助!

关于blob - 如何使用CryptoJS获取BLOB的正确SHA1哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17819820/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com