简介
react-native-wonder-rsa
是一个基于 React Native 开发的加密算法库,可用于 RSA 加密、解密、签名和验签操作。它使用纯 JavaScript 实现,适用于 Android 和 iOS 平台。
安装
首先需要安装 react-native-wonder-rsa
,可以通过 npm
命令进行如下安装:
npm install react-native-wonder-rsa --save
如果你使用的是 yarn
包管理器,也可以通过下面的命令进行安装:
yarn add react-native-wonder-rsa
然后,需要链接一下这个包,执行命令:
react-native link react-native-wonder-rsa
如果运行出现如下错误:
error React Native CLI uses autolinking for native dependencies, but the following modules are linked manually: react-native-wonder-rsa (to unlink run: "react-native unlink react-native-wonder-rsa")
解决方法:
cd ios && pod install && cd ..
API 文档
以下为 react-native-wonder-rsa
的 API ,具体细节请查阅源码,或者执行 npm run doc
查看源代码生成的文档。
init
ReactNativeWonderRSA.init(module: string): Promise<boolean>;
初始化算法库,module
为指定的 CJS 入口文件。
generateRSAKeyPair
ReactNativeWonderRSA.generateRSAKeyPair(modulusBits: number, exponent: number): Promise<{public: string, private: string}>;
生成 RSA 密钥对,modulusBits
为密钥长度,exponent
为固定值,暂不支持自定义。
encrypt
ReactNativeWonderRSA.encrypt(publicKey: string, data: string): Promise<string>;
用公钥进行数据的 RSA 加密,publicKey
为公钥字符串,data
为要加密的数据。
decrypt
ReactNativeWonderRSA.decrypt(privateKey: string, encryptedData: string): Promise<string>;
用私钥进行数据的 RSA 解密,privateKey
为私钥字符串,encryptedData
为要解密的数据。
sign
ReactNativeWonderRSA.sign(privateKey: string, data: string): Promise<string>;
用私钥对数据进行 RSA 签名,privateKey
为私钥字符串,data
为要签名的数据。
verify
ReactNativeWonderRSA.verify(publicKey: string, signedData: string, signature: string): Promise<boolean>;
用公钥对签名数据进行 RSA 验签,publicKey
为公钥字符串,signedData
为已经签名的数据,signature
为签名数据。
示例代码
以下是 RSA 加密解密的示例代码:
-- -------------------- ---- ------- ------ ------ - --------- - ---- -------- ------ - ----- ----- ---------- ------ - ---- --------------- ------ -------------------- ---- -------------------------- ------ ------- ----- --- ------- --------- - ------------------ - ------------- ---------- - - ---------- --- ----------- --- ---------- --- ------------ --- ------------ --- -- - ----------------- - ----- -- -- - ----- -------------------------------------- ----- - ------- ---------- -------- ---------- - - ----- ---------------------------------------- ----- ----- -- --------------- ---------- ---------- --- -- ------------- - ----- -- -- - ----- - ---------- --------- - - ----------- ----- ----------- - ----- --------------------------------------- ----------- --------------- ----------- --- -- ------------- - ----- -- -- - ----- - ----------- ----------- - - ----------- ----- ----------- - ----- ---------------------------------------- ------------- --------------- ----------- --- -- -------- - ----- - ---------- ----------- ---------- ------------ ----------- - - ----------- ------ - ------ ---------------- ------------------------ ---------------- ------------------------- ---------- -------------------------- ------------------------- -- --------------------------- -- ------- ---------- ---------------------------- -- ------------------ -------------------------- ------- ---------- ---------------------------- -- ------------------ -------------------------- ------- -- - -展开代码
总结
react-native-wonder-rsa
提供了数据加密解密、签名验签等安全算法操作,同时支持 RSA 密钥生成,易用性强,方便前端进行加密操作。但是它的算法实现基于纯 JavaScript,运算速度相较于 C++ 实现的 RSA 算法会相对慢一些,需要权衡其加密安全性与运行效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005668081e8991b448e29a9