1. 程式人生 > >flutter中的加密

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("[email protected]");

這個庫採用了原生庫整合的方式。

這個庫涵蓋了

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年了,肯定是沒錯的。