2016-09-21 214 views
1

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

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

有什么办法可以调用Android/iOS本机api来计算SHA256,而不是使用crypto-js来提高性能?

+0

只是好奇知道。为什么你需要计算大小超过400MB的文件的SHA256? – Jickson

+1

这是因为iPhone创建的视频文件可能容易超过400MB。 – user3390906

+1

您可以随时创建一个本地模块,即[用Android上的Java编写的模块](https://facebook.github.io/react-native/docs/native-modules-android.html),以及相应的iOS。 [这里有Android的代码。](http://stackoverflow.com/questions/10129311/does-every-android-phone-support-sha-256),请查看底部的答案以获得完整的功能。 –

回答

0

反应原生本身并没有内建本地计算sha-256,但有几个选项。

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

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

正如@Morre指出的那样,如果您喜欢该选项,您可以编写自己的本机代码来提供相同的功能。我在这里提到的两个库都是开源的,所以这里的源代码可以为需要编写特定的Android/iOS代码提供很好的参考。对于javaswift,StackOverflow上也有代码示例。 React-Native的native module documentation (Android)iOS是广泛的。