How to get correct SHA1 hash of BLOB using CryptoJS? -
cryptojs v3.1.2, sha1.js rollup
in js want calculate sha1 of blob before sending server. on server want calculate sha1 of resulting file , compare sha1 received js. problem hash generated cryptojs.sha1() incorrect (always 9844f81e1408f6ecb932137d33bed7cfdcf518a3)
js code:
function uploadfileslice (slice) { // slice 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 code:
$file_crc = sha1_file($_files['fileslice']['tmp_name']); if ($_request['sha1crc'] !== $file_crc) { echo "invalid crc: {$_request['sha1crc']} (expected $file_crc)"; return; }
output:
invalid crc: 9844f81e1408f6ecb932137d33bed7cfdcf518a3 (expected 3ebe2cd2d8fd8d8f977b6d715f0b1adf5b08b407
i hoping myhash = cryptojs.sha1(blob)...
from info you've provided i'm not sure how have things setup in order arraybuffers supported have include components/lib-typedarrays-min.js.
there's discussion @ https://code.google.com/p/crypto-js/issues/detail?id=67.
hope helps!
Comments
Post a Comment