文章目录
- 1. 概念介绍
- 2. 方法与功能
- 2.1 基本用法
- 2.2 加密算法
- 3. 示例代码
- 4. 内容总结
我们在上一章回中介绍了"FlutterCacheManager组件"相关的内容,本章回中将介绍一个加密工具包.闲话休提,让我们一起Talk Flutter吧。
1. 概念介绍
加密主要是为了保护一些重要数据,我们在实际项目中会用到加密工具,因此在本章回中介绍一个加密工具包:crypto.本章回中将详细介绍该包的使用方法。
2. 方法与功能
2.1 基本用法
我们介绍的加密工具包crypto是一个三方包,不过它是由dart官方提供的,因此也可以当作官方内容来使用。下面是该包的使用方法。
- 在yaml配置文件中引入crypto包,并且更新到当前项目中;
- 在程序中依据加密算法调用包中的接口实现加密和解密功能;
该包提供的接口都是静态类型的接口,可以通过算法名直接调用,常用的方法是convert,我们将在后面的小节中通过示例代码来演示具体的使用方法。
2.2 加密算法
crypto包支持多种加密算法,不过都以哈希算法为主,下面是它支持的算法列表:
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
- SHA-512/224
- SHA-512/256
- MD5
- HMAC (i.e. HMAC-MD5, HMAC-SHA1, HMAC-SHA256)
上面列出的这些算法都是常用的哈希算法,完全可以满足我们在项目中的加密需求。
3. 示例代码
import 'package:crypto/crypto.dart';
import 'dart:convert'; // for the utf8.encode method
void main() {
var bytes = utf8.encode("foobar"); // data being hashed
var digest = sha1.convert(bytes);
var md5Digest = md5.convert(btyes);
print("Digest as bytes: ${digest.bytes}");
print("Digest as hex string: $digest");
print("md5 Digest as hex string: $md5Digest");
}
上面的示例代码是在官方示例的基础上做了修改,主要演示了如何使用sha1和md5两种加密算法来加密字符串,我们通过日志打印出加密前和加密后的内容,大家可以自己
动手去试试,这样可以看到实际的加密效果。
4. 内容总结
最后,我们对本章回的内容做一个全面的总结:
- 我们可以使用crypto包中的接口实现加密功能;
- crytpo包提供了常用的哈希加密算法,比如sha,md5;
- 包的加密功能主要通过convert这个静态方法来实现;
看官们,与"介绍一个加密工具包"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!