CryptoJS v3.1.2, cumulativo sha1.jsCome ottenere l'hash SHA1 di BLOB corretto usando CryptoJS?
In JS voglio calcolare lo SHA1 di un blob prima di inviarlo al server. Sul server voglio calcolare lo SHA1 del file risultante e confrontarlo con lo SHA1 ricevuto da JS. Il problema è che l'hash generato da CryptoJS.SHA1() non è corretta (sempre 9844f81e1408f6ecb932137d33bed7cfdcf518a3)
codice JS: codice
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;
}
uscita:
non valido CRC: 9844f81e1408f6ecb932137d33bed7cfdcf518a3 (previsto 3ebe2cd2d8fd8d8f977b6d715f0b1adf5b08b407
Speravo in qualcosa come myHash = CryptoJS.SHA1 (blob) ...
Proprio sul pulsante. Grazie. –
Nessun problema lieto di aiutarti! – Trey
Sto cercando di usare sha256 e ho delle difficoltà. Nel mio caso, ho una stringa b64 che rappresenta un'immagine. Uso il codice che hai collegato convertendolo in arraybuffer e quindi utilizzando un wordarray per calcolare l'hash. Sfortunatamente quando controllo l'hash dell'immagine con openssl sha256 sul mio mac, i risultati sono diversi. Qualche idea su cosa sto facendo male? – Dieghito