npm i --save react-native-crypto
# install peer deps
npm i --save react-native-randombytes
react-native link react-native-randombytes
# install latest rn-nodeify
npm i --save-dev tradle/rn-nodeify
# install node core shims and recursively hack package.json files
# in ./node_modules to add/update the "browser"/"react-native" field with relevant mappings
./node_modules/.bin/rn-nodeify --hack --install
rn-nodeify will create a shim.js in the project root directory
// index.ios.js or index.android.js
// make sure you use `import` and not require!
import './shim.js'
// ...the rest of your code
在你的index.js文件中导入shim.js
。
当你这样做后,加密技术应该就可以使用了。如果还是不行,我需要在我的App.js文件中创建一个常量:
export const cryp = require('crypto');
将其导入所需的组件中。
更新
我为此进行了新构建,按照以下步骤进行:
react-native init TestApp
按照上面的说明进行加密操作。
链接:
react-native link
react-native run-ios
react-native-crypto
在较新的react-native版本0.63.3
和react版本16.13.1
中不再适用。
我在我的react-native应用中使用了crypto-js
包,版本为3.1.9-1
,工作正常。
您可以在package.json
文件中添加以下行。
"crypto-js": "3.1.9-1",
crypto-js
别名为 crypto
?我已经安装了 crypto-js
,但是 Metro 仍然告诉我无法解析 crypto。 - Claudio Brassercrypto-js
。 - NinjaDevcrypto
还是它被一个库所使用?在我的情况下,crypto
是由一个库所需求的,而我想用 crypto-js
来替换它,因为 crypto
在 rn 中不可用。 - Claudio Brassercrypto-js
来加密/解密文本。
如果其他库需要 crypto
包,我认为你可以更换另一个库,或者自定义该库以导入 crypto-js
。 - NinjaDevcrypto是一个Node的库,可以在浏览器中使用,但是我们可以通过下面提到的一些技巧在React Native中使用它。按照以下步骤操作,你就可以准备好开始工作了。
npm i --save react-native-crypto
==> install peer deps
npm i --save react-native-randombytes
react-native link react-native-randombytes
==>install latest rn-nodeify
npm i --save-dev tradle/rn-nodeify
==> install node core shims and recursively hack package.json files
==> in ./node_modules to add/update the "browser"/"react-native" fieldwith relevant mappings
./node_modules/.bin/rn-nodeify --hack --install
./node_modules/.bin/rn-nodeify --hack --install
执行时自动添加到你的项目根目录中。 - Uzef Shaikh