1. 要在瀏覽器中計算出文件的sha256或md5值,基本思路就是使用HTML5的FileReader接口把文件讀取到內存(readAsArrayBuffer),然后獲取文件的二進制內容,然后獲取文件的shaa256或md5值。
2. ArrayBuffer是一塊內存,ArrayBuffer對象被用來表示一個通用的,固定長度的二進制數據緩沖區。
3. CryptoJS (crypto.js) 為 JavaScript 提供了各種各樣的加密算法。目前已支持的算法包括: MD5 SHA-1 SHA-256 AES Rabbit MARC4 HMAC HMAC-MD5 HMAC-SHA1...
首先從input type=file中讀取文件,然后使用以下代碼計算出sha256值。
let reader = new FileReader(); reader.readAsArrayBuffer(file.files[0]); reader.onload = function () { var wordArray = CryptoJS.lib.WordArray.create(reader.result); var hash = CryptoJS.SHA256(wordArray).toString(); };
參考:
https://stackoverflow.com/questions/27060248/calculate-sha-256-hash-and-b64-of-a-file-in-javascript