2016-09-21 1 views
1

J'ai besoin de calculer la valeur de hachage SHA256 de nombreux fichiers dans Android et iOS en utilisant React Native. Lorsque les fichiers sont sélectionnés par un utilisateur, mon application commence à calculer SHA256 pour chaque fichier.SHA256 dans React Native

Pour les pages web, j'ai utilisé des crypto-js. Mais pour les applications Andoid et iOS, je crains que les performances de crypto-js ne soient pas assez rapides car un fichier (par exemple un fichier vidéo) peut être> 400 Mo.

Y at-il un moyen que je peux appeler Android api natif Android/iOS pour calculer SHA256, au lieu d'utiliser crypto-js pour l'amour de la performance?

+0

Juste curieux de savoir. Pourquoi avez-vous besoin de calculer SHA256 de fichiers de plus de 400MB? – Jickson

+1

C'est parce qu'un fichier vidéo créé par l'iPhone peut facilement être plus de 400 Mo. – user3390906

+1

Vous pouvez toujours créer un module natif, c'est-à-dire [un écrit en Java sur Android] (https://facebook.github.io/react-native/docs/native-modules-android.html), et sur iOS en conséquence. [Il y a du code pour Android ici.] (Http://stackoverflow.com/questions/10129311/does-every-android-phone-support-sha-256), voir la réponse en bas pour une fonction complète. –

Répondre

0

Il n'y a rien de construit dans la réaction native pour calculer nativement un sha-256, mais il y a quelques options. Comme l'a souligné @Morre, react-native-sha256 est un projet open source qui prend en charge le calcul du sha-256 d'une chaîne à l'aide de composants natifs.

Un autre projet open source réactif - react-native-fs - prend en charge le calcul du sha-256 d'un fichier utilisant des composants natifs, en particulier la fonction hash. Comme l'a souligné @Morre, vous pouvez écrire votre propre code natif pour fournir la même fonctionnalité si vous préférez cette option. Les deux bibliothèques que j'ai mentionnées ici sont open source, donc le code source peut être une bonne référence pour ce que le code Android/iOS spécifique doit être écrit. Il y a aussi des exemples de code ici sur StackOverflow pour java et swift. React-Native native module documentation (Android) et iOS est vaste.