flutter中的加密
前⾔
对于⼀个移动应⽤来说,对⽤户敏感信息的保护,意义重⼤。常见的密码保护⼿段有:
对称秘钥加密,⾮对称秘钥加密以及各种散列计算。
对称秘钥加密常⽤的有:aes、des等,⾮对称秘钥常见的有:rsa等,散列计算常⽤的有md5、sha256等。
这些算法在flutter中有吗?笔者带着疑问搜索了⼀下pub和github,发现了⼀些库,不敢藏私,在这边给⼤家分享⼀下。常⽤算法库
这个库涵盖了
SHA-1
SHA-256
MD5
HMAC (i.e. HMAC-MD5, HMAC-SHA1, HMAC-SHA256)
使⽤起来也是⾮常简单:
import 'package:crypto/crypto.dart';
var digest = vert(bytes);
这个库涵盖了:
SHA-1
SHA-256
flutter pub
使⽤⽅式:
var c1 = new Crypt.sha256("p@ssw0rd");
这个库采⽤了原⽣库集成的⽅式。
这个库涵盖了
AES/CBC/PKCS5/Random IVs/HMAC-SHA256
使⽤⽅式:
final cryptor = new PlatformStringCryptor();
final String key = ateRandomKey();
final password = "user_provided_password";
final String salt = ateSalt();
final String key = ateKeyFromPassword(password, salt);
总结
截⽌到本⽂发布的⽇期:2018-09-18,在pub和git上⾯发布的flutter加密库⽀持了
AES / SHA-256 / SHA-1 / MD5 / HMAC
这些算法,那么des和rsa这两种⽐较常见的算法暂时还没有到。
当然这篇⽂章肯定有疏漏,希望到其他实现算法的同学不吝告知,不胜感激。
如果⼤家在实际开发过程中需要使⽤这些没有实现的算法,⽽⼜实在不到的话,建议参考flutter_string_encryption的⽅式,直接封装原⽣库的成果拿来使⽤,原⽣上⾯的成熟库已经被⼤家使⽤验证了n年了,肯定是没错的。