https://github.com/ko-devhong/react-native-crypto-rsa
https://github.com/ko-devhong/react-native-crypto-rsa
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/ko-devhong/react-native-crypto-rsa
- Owner: ko-devHong
- License: mit
- Created: 2024-04-26T05:12:02.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-09T05:28:04.000Z (about 2 years ago)
- Last Synced: 2025-02-12T17:50:30.174Z (over 1 year ago)
- Language: Kotlin
- Size: 1.58 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# @ko-developerhong/react-native-crypto-rsa
## introduce
>`@ko-developerhong/react-native-crypto-rsa` The library provides RSA encryption and decryption in React Native applications, which allow you to generate public and private keys, and encrypt or decrypt messages.
## Installation
```sh
npm install @ko-developerhong/react-native-crypto-rsa
```
## iOS
1. Add the following lines to the Podfile.
```Podfile
pod 'react-native-crypto-rsa', :path => '../node_modules/react-native-crypto-rsa'
```
2. From the terminal, go to the root directory of the project and issue the `pod install` command.
```shell
cd ios
pod install
# OR
npx pod-install ios
```
### Manual Installation
> Open `Xcode`, click Project Files, and add `libreact-native-crypto-rsa.a` to the `Link Binary With Libraries` section on the `Build Phases` tab.
## Usage
### Generating public and private keys
- The `publicKey` value is returned in the form of a `pemString`.
```tsx
import RNCryptoRsa from '@ko-developerhong/react-native-crypto-rsa';
// keySize: An integer value representing the size of the key to be generated. The default is 2048.
const keySize = 2048
const { publicKey } = await RNCryptoRsa.init(keySize);
const publicKeyPemString = await RNCryptoRsa.getPublicKey();
```
### Encrypt and decrypt messages
```tsx
import RNCryptoRsa from '@ko-developerhong/react-native-crypto-rsa';
const encryptedMessage = await RNCryptoRsa.encrypt('Hello, World!', publicKey);
const decryptedMessage = await RNCryptoRsa.decrypt(encryptedMessage); // Hello, World!
```
### SHA512 hash generation
```tsx
import RNCryptoRsa from '@ko-developerhong/react-native-crypto-rsa';
const { publicKey } = await RNCryptoRsa.init(keySize);
const sha512Text = await RNCryptoRsa.getSHA512Text(publicKey); // hashText
```
## Precautions
> RSA encryption and decryption are CPU and memory intensive, which can affect performance when handling large amounts of data.
> Public and private keys are critical to security, so they should be stored in a secure place and deleted if unnecessary.
> The public key is used to encrypt the message, and the private key is used to decrypt the encrypted message.
## Example
```shell
yarn example start
yarn example android
# OR
yarn example ios
```
## Contributing
See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
## License
MIT
---
Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)