javascript - 哪个 rsa 库推荐用于 "react native"平台?

标签 javascript node.js react-native

哪个 rsa 库推荐用于支持 android 的“react native”平台?

谢谢

编辑:

我试过react-native-rsa:

var encrypted = '';
try {
  var RSAKey = require('react-native-rsa');
  const bits = 1024;
  const exponent = '10001';
  var rsa = new RSAKey();
  rsa.generate(bits, exponent);
  var publicKey = rsa.getPublicString(); 
  var privateKey = rsa.getPrivateString(); 
} catch (error) {
  console.log(1);
  console.log(error);
}

try {

  rsa = new RSAKey();
  rsa.setPrivateString(privateKey);
  var originText = 'Test 123 Test 321';
  encrypted = rsa.encrypt(originText);

} catch (error) {
  console.log(2);
  console.log(error);
}

try {
  rsa = new RSAKey();
  rsa.setPublicString(publicKey);
  var decrypted = rsa.decrypt(encrypted);
  console.log(decrypted);

} catch (error) {
  console.log(3);
  console.log(error);
}

但是我得到了这个错误:

I/ReactNativeJS( 9238): 3                                                                                                                                                                                  
I/ReactNativeJS( 9238): { [TypeError: null is not an object (evaluating 'e.bitLength')]                                                                                                                    
I/ReactNativeJS( 9238):   line: 96781,                                                                                                                                                                     
I/ReactNativeJS( 9238):   column: 8,                                                                                                                                                                       
I/ReactNativeJS( 9238):   sourceURL: 'http://10.0.3.2:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false' }  

最佳答案

试试react-native-rsa,它使用起来很简单,而且会支持android平台。

首先使用 Npm 安装库:

npm 安装 react-native-rsa

生成 RSA key :

var RSAKey = require('react-native-rsa');
const bits = 1024;
const exponent = '10001'; // must be a string
var rsa = new RSAKey();
var r = rsa.generate(bits, exponent);
var publicKey = rsa.RSAGetPublicString(); // return json encoded string
var privateKey = rsa.RSAGetPrivateString(); // return json encoded string

脚本:

var rsa = new RSAKey();
rsa.setPublicString(publicKey);
var originText = 'sample String Value';
var encrypted = rsa.encrypt(originText);

描述:

rsa.setPrivateString(privateKey);
var decrypted = rsa.decrypt(encrypted); // decrypted == originText

引用:https://www.npmjs.com/package/react-native-rsa

关于javascript - 哪个 rsa 库推荐用于 "react native"平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39878901/

相关文章:

javascript - 如何防止剑道网格弹出编辑器窗口打开?

javascript - 一个对象如何从对象列表中分组并仅收集明确引用的特定值,每个值都通过其键?

node.js - 无法找到连接到 Red Hat 服务器上运行的 node.js

javascript - Node.js 在处理大文件上传时会被阻塞吗?

javascript - React Native 按日期排序数组

reactjs - 尽管我已经安装了 Redux 调试器,为什么这没有连接到 Flipper

javascript - 如何在 knockout observablearray 中按索引访问对象?无法处理绑定(bind)

javascript - 当前浏览器的净宽和净高

java - 试图弄清楚如何将它与 Node.js、Java 和 HTML5 结合在一起

javascript - 尝试通过 Expo (React Native) 启动应用程序时从 NodeJS 获取 EISDIR 错误