2016-09-21 205 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是廣泛的。