flutter中的加密
阿新 • • 發佈:2018-12-10
前言
對於一個移動應用來說,對使用者敏感資訊的保護,意義重大。常見的密碼保護手段有:對稱祕鑰加密,非對稱祕鑰加密以及各種雜湊計算。
對稱祕鑰加密常用的有: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年了,肯定是沒錯的。