High performance Crypto library of Rust implementation for Flutter
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
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<int> 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 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