【问题标题】:expo-crypto hash not matching with the hash generated by Crypto JS in react web appexpo-crypto 哈希与 Crypto JS 在 React Web 应用程序中生成的哈希不匹配
【发布时间】:2022-03-10 10:07:11
【问题描述】:

我正在尝试在我的 React 本机移动应用程序和 React Web 应用程序中对图像文件的内容(没有元信息的字节)进行哈希处理。我正在使用 expo-crypto 对移动版本中的图像和 Web 应用程序版本中的 CryptoJS 进行哈希处理。但是这两种方法生成的hash不一样。

谁能帮我找出哈希不匹配的地方。

RN Expo 代码

'''

let info = await FileSystem.readAsStringAsync(path);
var digest ;

  if(info)
  {   digest  = await Crypto.digestStringAsync(
      Crypto.CryptoDigestAlgorithm.SHA256,
      info 

    );) }   

'''

反应代码

'''

  function handleUpload(event) {
     return new Promise((resolve, reject) => {
            const reader = new FileReader();
            reader.onload = (event) => {
             resolve(event.target.result);
             var hash = sha256(event.target.result)
  };
  reader.onerror = (err) => {
      reject(err);
  };
 reader.readAsBinaryString(event.target.files[0]);
  }); }

'''

【问题讨论】:

    标签: reactjs react-native expo sha256 cryptojs


    【解决方案1】:

    你在 react-native 中为 Crypto 使用什么? expo-crypto 不支持二进制。您将不得不使用 isomorphic-webcrypto 之类的东西来散列二进制文件。编译选项:https://docs.expo.dev/versions/latest/sdk/crypto/ 是返回哈希(摘要)的方式,无法修改输入处理,即使这将是一个非常容易的更改。

    查看更多背景信息和可能的解决方法:https://forums.expo.dev/t/how-to-hash-buffer-with-expo-for-an-array/45337

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-22
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-30
      相关资源
      最近更新 更多