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年了,肯定是没错的。
flutter探索之路
A simple way to solving problems is using tools like docker/Spring boot/React Native/React/Vue… T...
CSplitterWnd动态分割
jzoom阅读 1.1k
手把手教你写一份优质的前端技术简历
tonychen赞 152阅读 17.7k评论 5
正则表达式实例
寒青赞 56阅读 8.4k评论 11
JavaScript有用的代码片段和trick
jenemy赞 48阅读 6.9k评论 12
从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
乌柏木赞 75阅读 7k评论 16
再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
libinfs赞 42阅读 6.8k评论 12
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
乌柏木赞 45阅读 8.5k评论 6
A simple way to solving problems is using tools like docker/Spring boot/React Native/React/Vue… T...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。