Flutter加密实战宝典:手把手教你玩转Crypto库
·
今天要介绍的是Flutter加密核心库Crypto的使用。
一、加密库核心能力
支持以下哈希算法:
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
- SHA-512/224
- SHA-512/256
- MD5
- HMAC(例如 HMAC-MD5、HMAC-SHA1、HMAC-SHA256)
二、依赖安装
flutter pub add crypto
三、实战案例
3.1、MD5
var bytes = utf8.encode("foobar");
var hash = md5.convert(bytes);
debugPrint("md5 as bytes: ${hash.bytes} ${hash.bytes.length}");
debugPrint("md5 as hex string: $hash");
// 输出结果 3858f62230ac3c915f300c664312c63f
3.2、sha哈希算法
- 简单使用
// sha1
var bytes = utf8.encode("foobar");
var digest = sha1.convert(bytes);
debugPrint("Digest as bytes: ${digest.bytes} ${digest.bytes.length}");
debugPrint("Digest as hex string: $digest");
// sha256
var bytes = utf8.encode("foobar");
var digest1 = sha256.convert(bytes);
debugPrint("Digest as bytes: ${digest1.bytes} ${digest1.bytes.length}");
debugPrint("Digest as hex string: $digest1");
- 分块加密案例
var firstChunk = utf8.encode("foo");
var secondChunk = utf8.encode("bar");
var output = AccumulatorSink<Digest>(); // flutter pub add convert 使用该函数需要引入框架
var input = sha512.startChunkedConversion(output);
input.add(firstChunk);
input.add(secondChunk);
input.close();
digest = output.events.single;
debugPrint("Digest as bytes: ${digest.bytes} ${digest.bytes.length}");
debugPrint("Digest as hex string: $digest");
3.3、HMAC哈希算法
var bytes = utf8.encode("foobar");
var key = utf8.encode('p@ssw0rd');
var hmacSha256 = Hmac(sha512, key);
digest = hmacSha256.convert(bytes);
debugPrint("HMAC digest as bytes: ${digest.bytes} ${digest.bytes.length}");
debugPrint("HMAC digest as hex string: $digest");
以上便是常用算法在dart中的使用了。
后续文章优先在 WX公众号 “天天开发” 中发布,如有需要请搜索关注!
更多推荐
所有评论(0)