在ReactJS代码中使用openssl库

问题描述

我想获取我使用reactJS形式上传的文档的Base64编码的SHA-256二进制摘要

 <input
          type="file"
          name="file"
          onChange={async (e) => {
            let selectedFile = e.target.files;
          //I want to convert my file here
          }}
        />

因此我可以将结果传递给API端点。 我用来获取文档正确格式的脚本是:

openssl dgst -binary -sha256 <document> | openssl enc -base64

我想在React JS代码中获得此脚本的相同输出。或将我使用表单上传的文档传递到此脚本,然后使用输出

解决方法

您需要使用一个库来计算sha256,例如crypto js,然后

let selectedFile = e.target.files[0];
var reader = new FileReader();
reader.onload = function (event) {
   var data = event.target.result;
   var digest = CryptoJS.SHA256( data );
};
reader.readAsBinaryString(selectedFile);