r_crypto
Rust后端支持的加密Flutter库,比Dart实现的库快得多,轻量级库。
某些加密支持硬件加速。
支持的算法
杂凑
- 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提供的安全性与RIPEMD-160相同)
- Shabal
- Shabal192
- Shabal224
- Shabal256
- Shabal384
- Shabal512
即将支持更多摘要算法。
支持的平台
- Android
- arm64-v8a
- armeabi-v7a
- x86
- x86_64
- iOS
- arm64
- x86_64
- macOS
- x86_64
- arm64 (开发中)
- Windows
- x86_64
- x86 (目前不支持,且无计划)
- Linux
- x86_64
用法示例
哈希
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);
笔记
- Windows 用户需要下载 rcrypto.dll 并将其放置在与*.exe相同的文件夹中。这是Flutter Windows插件目前的限制。
待办事项
- [x] 支持文件输入
- [ ] 支持加密/解密算法