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 = sha1.convert(bytes);

这个库涵盖了:

SHA-1
SHA-256

使用方式:

var c1 = new Crypt.sha256("p@ssw0rd");

这个库采用了原生库集成的方式。

这个库涵盖了

AES/CBC/PKCS5/Random IVs/HMAC-SHA256

使用方式:

final cryptor = new PlatformStringCryptor();
final String key = await cryptor.generateRandomKey();
final password = "user_provided_password";
final String salt = await cryptor.generateSalt();
final String key = await crypto.generateKeyFromPassword(password, salt);

总结

截止到本文发布的日期:2018-09-18,在pub和git上面发布的flutter加密库支持了

AES / SHA-256 / SHA-1 / MD5 / HMAC

这些算法,那么des和rsa这两种比较常见的算法暂时还没有找到。

当然这篇文章肯定有疏漏,希望找到其他实现算法的同学不吝告知,不胜感激。

如果大家在实际开发过程中需要使用这些没有实现的算法,而又实在找不到的话,建议参考flutter_string_encryption的方式,直接封装原生库的成果拿来使用,原生上面的成熟库已经被大家使用验证了n年了,肯定是没错的。

    原文作者:jzoom
    原文地址: https://segmentfault.com/a/1190000016446290
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞