https://github.com/tinoguo/r_crypto
🦀🦀 High performance Crypto library of Rust implementation for Flutter
https://github.com/tinoguo/r_crypto
blake2 blake3 crypto dart digest flutter hash library md5 plugin rust sha1 sha2 sha3 whirlpool
Last synced: 3 months ago
JSON representation
🦀🦀 High performance Crypto library of Rust implementation for Flutter
- Host: GitHub
- URL: https://github.com/tinoguo/r_crypto
- Owner: TinoGuo
- License: mit
- Created: 2020-09-28T16:49:30.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-05-19T14:32:12.000Z (over 1 year ago)
- Last Synced: 2024-05-19T15:37:35.798Z (over 1 year ago)
- Topics: blake2, blake3, crypto, dart, digest, flutter, hash, library, md5, plugin, rust, sha1, sha2, sha3, whirlpool
- Language: Rust
- Homepage:
- Size: 1.19 MB
- Stars: 31
- Watchers: 5
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README

[](https://pub.dartlang.org/packages/r_crypto)



# r_crypto
Rust backend support crypto flutter library, much faster than Dart-implementation library, light-weight library.
Some crypto support hardware accelerate.
## Support Algorithm
### Hashes
- MD5
- SHA1
- SHA2
- SHA224
- SHA256
- SHA384
- SHA512-trunc224
- SHA512-trunc256
- SHA3
- SHA3-224
- SHA3-256
- SHA3-384
- SHA3-512
- SHAKE-128
- SHAKE-256
- KECCAK224
- KECCAK256
- KECCAK384
- KECCAK512
- Whirlpool
- Blake2
- Blake2b
- Blake2s
- Blake3
- Groestl
- Groestl224
- Groestl256
- Groestl384
- Groestl512
- GroestlBig
- GroestlSmall
- RIPEMD160 (RIPEMD-320 provides only the same security as RIPEMD-160)
- Shabal
- Shabal192
- Shabal224
- Shabal256
- Shabal384
- Shabal512
More digest will support soon.
## Support Platform
- Android
- arm64-v8a
- armeabi-v7a
- x86
- x86_64
- iOS
- arm64
- x86_64
- macOS
- x86_64
- arm64(WIP)
- Windows
- x86_64
- x86(Not support now and feature)
- Linux
- x86_64
## Example Usage
### Hash
```dart
import 'package:r_crypto/r_crypto.dart';
// For fixed output length digest
rHash.hashString(HashType.MD5, input);
// For dynamic output length digest
rHash.hashString(HashType.blake3(length: 64), input);
// Also accept List as parameter
rHash.hashList(HashType.KECCAK_224, [0,1,2]);
// Hash File
rHash.filePath(HashType.blake3(length: 32), path);
// Encode the list
hex.encode(list);
```
## Note
- Windows user needs to download the [rcrypto.dll](https://github.com/TinoGuo/r_crypto/releases) and put it in the same folder with *.exe. It's the limitation of the Flutter Windows Plugin now.
## TODO
- [x] Support file input
- [ ] Support encrypt/decrypt algorithm