Узел 'crypto' SHA256, модель хеширования, ведет себя хаотично - PullRequest
0 голосов
/ 06 февраля 2019

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

При первой передаче он выдает правильный хэш.Каждое повторное представление создает неправильный хэш.Если я повторно отправляю одни и те же файлы в одном и том же порядке, все они выдают одинаковый (неправильный) хэш.

Я думаю, что буфер может накапливаться.Или может что-то еще?Я пытаюсь выяснить, как очистить буферный массив.

Есть идеи?

import React, { Component } from "react";

const crypto = require("crypto");
const hash = crypto.createHash("sha256");

class SearchPage extends Component {
  constructor(props) {
    super(props);
    this.state = {
      hashOutput: "",
      fileName: "",
    };
  }

  onChange(e) {
    let files = e.target.files;
    this.setState({ fileName: files[0].name });
    let reader = new FileReader();
    reader.readAsArrayBuffer(files[0]);

    reader.onload = e => {
      hash.update(Buffer.from(e.target.result));
      const hashOutput = hash.digest("hex");
      this.setState({ hashOutput });
      console.log(hashOutput);
    };
  }

  render() {
    return (
        <div onSubmit={this.onFormSubmit}>
          <input type="file" name="file" onChange={e => this.onChange(e)} />
        </div>
    );
  }
}

export default SearchPage;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...