React Native 中的 SHA256

问题描述 投票:0回答:2

我需要使用React Native计算Android和iOS中许多文件的SHA256哈希值。 当用户选择文件时,我的应用程序将开始计算每个文件的 SHA256。

对于网页,我一直在使用 crypto-js。 但对于 Andoid 和 iOS 应用程序,我担心 crypto-js 的性能可能不够快,因为文件(例如视频文件)可能 >400 MB。

有什么办法可以调用Android/iOS原生api来计算SHA256,而不是为了性能而使用crypto-js?

react-native sha cryptojs
2个回答
5
投票

react-native 本身没有内置任何东西来本地计算 sha-256,但有一些选项。

正如@Morre指出的,react-native-sha256是一个开源项目,支持使用本机组件计算字符串的sha-256。

另一个开源react-native项目 - react-native-fs - 支持使用本机组件计算文件的sha-256,特别是hash函数。

正如 @Morre 所指出的,如果您愿意,您可以编写自己的本机代码来提供相同的功能。我在这里提到的两个库都是开源的,因此其中的源代码可以为需要编写的特定 Android/iOS 代码提供很好的参考。 StackOverflow 上还有 javaswift 的代码示例。 React-Native 的本机模块文档 (Android)iOS 非常广泛。


0
投票

如果有人在 2024 年仍然关注同样的问题并使用 Expo,您可以尝试 Expo Crypto:https://docs.expo.dev/versions/latest/sdk/crypto/

const sha256Text = await Crypto.digestStringAsync(
Crypto.CryptoDigestAlgorithm.SHA256, 
'Example text');
© www.soinside.com 2019 - 2024. All rights reserved.