Как выполнить хэш sha256, используя sjcl.hash.sha256.hash для содержимого файла? - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь выполнить хэш SHA256 для содержимого файла, используя javascript.

Я получаю файл, используя следующую функцию

var fileReader = new FileReader();
var fileByteArray = [];
fileReader.onload = function(evt) {
    if (evt.target.readyState == FileReader.DONE) {
        var arrayBuffer = evt.target.result,
        array = new Uint8Array(arrayBuffer);
        fileHash = generateHashOfFileContent(array); 
        console.log('fileHash1: ' + fileHash);
    }
}
fileReader.readAsArrayBuffer(this.files[0]);

И хеш-функция

function generateHashOfFileContent(fileData){
  var bitArray = sjcl.hash.sha256.hash(fileData);
  var digest_sha256 = sjcl.codec.hex.fromBits(bitArray);
  console.log("Sha256 "+digest_sha256);
  return digest_sha256;
}

Но он выдает неправильные хеш-данные, когда я выбираю бинарный файл

Я могу создать реальный хеш, используя текстовый файл и изменить fileReader.readAsArrayBuffer (this.files [0]); -------> fileReader.readAsText (this.files [0]);

Может кто-то помочьмне разобраться в проблеме

...