2016-09-21 20 views
1

Ich brauche SHA256 Hash-Wert vieler Dateien in Android und iOS mit React Native. Wenn Dateien von einem Benutzer ausgewählt werden, beginnt meine App mit der Berechnung von SHA256 für jede Datei.SHA256 in React Native

Für Webseiten habe ich Crypto-js verwendet. Aber für Andoid- und iOS-Anwendungen bin ich besorgt, dass die Leistung von crypto-js möglicherweise nicht schnell genug ist, da eine Datei (z. B. eine Videodatei)> 400 MB groß sein kann.

Gibt es eine Möglichkeit, dass ich Android/iOS native API aufrufen kann, um SHA256 zu berechnen, anstatt crypto-js für die Leistung zu verwenden?

+0

Nur neugierig zu wissen. Warum müssen Sie SHA256 von Dateien über 400 MB Größe berechnen? – Jickson

+1

Dies liegt daran, dass eine vom iPhone erstellte Videodatei einfach mehr als 400 MB groß sein kann. – user3390906

+1

Sie können immer ein natives Modul erstellen, d. H. [Eines in Java auf Android geschrieben] (https://facebook.github.io/react-native/docs/native-modules-android.html) und auf iOS entsprechend. [Hier gibt es Code für Android.] (Http://stackoverflow.com/questions/10129311/does-everyandroid-phone-support-sha-256), siehe die Antwort auf der Unterseite für eine vollständige Funktion. –

Antwort

0

Es ist nichts in read-native integriert, um nativ eine sha-256 zu berechnen, aber es gibt ein paar Optionen.

Wie @Morre darauf hingewiesen, react-native-sha256 ist ein Open-Source-Projekt, das die Berechnung der Sha-256 einer Zeichenfolge mit nativen Komponenten unterstützt.

Ein anderes Open-Source-reactive-natives Projekt - react-native-fs - unterstützt die Berechnung des sha-256 einer Datei mit nativen Komponenten, speziell der -Funktion.

Wie @Morre darauf hingewiesen hat, könnten Sie Ihren eigenen nativen Code schreiben, um die gleiche Funktionalität zu bieten, wenn Sie diese Option bevorzugen würden. Die beiden Bibliotheken, die ich hier erwähnt habe, sind Open Source, daher kann der Quellcode eine gute Referenz dafür sein, wofür der spezifische Android/iOS-Code geschrieben werden muss. In StackOverflow gibt es auch Codebeispiele für java und swift. React-Native's native module documentation (Android) und iOS ist umfangreich.