Vla*_*nea 6 sha1 blob cryptojs
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)
}
Run Code Online (Sandbox Code Playgroud)
PHP代码:
$file_crc = sha1_file($_FILES['fileslice']['tmp_name']);
if ($_REQUEST['sha1crc'] !== $file_crc) {
echo "Invalid CRC: {$_REQUEST['sha1crc']} (expected $file_crc)";
return;
}
Run Code Online (Sandbox Code Playgroud)
输出:
CRC无效:9844f81e1408f6ecb932137d33bed7cfdcf518a3(预计3ebe2cd2d8fd8d8f977b6d715f0b1adf5b08b407
我希望像myHash = CryptoJS.SHA1(blob)...
Tre*_*rey 11
根据您提供的信息,我不确定您是如何设置的,但为了支持ArrayBuffers,您必须包含components/lib-typedarrays-min.js.
有关此问题的讨论,请访问https://code.google.com/p/crypto-js/issues/detail?id=67.
希望这可以帮助!