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] 支持文件输入
  • [ ] 支持加密/解密算法

GitHub

https://github.com/TinoGuo/r_crypto