Flutterのパッケージencrypt
を使って文字列などをAESで暗号化・復号化したい!
概要
今回の記事ではFlutterのパッケージencrypt
を使って文字列などをAESで暗号化・復号化する手順を掲載する。
仕様書
環境
- Android Studio Giraffe | 2023.2.1 Patch 2
- Flutter 3.24.1
- encrypt 5.0.3
手順書
インストール編とコード編の2部構成です。
インストール編
ターミナルでコマンドを実行するか
flutter pub add encrypt
pubspec.yaml
のdependencies:
に下記のような感じで追加して
dependencies:
encrypt: ^5.0.3
ターミナルでflutter pub get
する。
flutter pub get
コード編
文字列をAESで暗号化してBASE64で暗号化とそれを復号化する例。
import 'dart:convert';
import 'package:encrypt/encrypt.dart';
class Crypt {
static final key = Key.fromUtf8('yymKFm1sC7CYbUKFEbpJTe1jpimRlBYx');
static final iv = IV.fromUtf8("c3nc310fLq0oWRJv");
static String encryption(String plain) {
final encrypter = Encrypter(AES(key));
final encrypted = encrypter.encrypt(plain, iv: iv);
return encrypted.base64;
}
static String decryption(String s) {
final encrypter = Encrypter(AES(key));
final decrypted = encrypter.decrypt64(s, iv: iv);
return decrypted;
}
}
BASE64以外にもBASE16やUint8List
で出力することもできる。
static String encryptionBase16(String plain) {
final encrypter = Encrypter(AES(key));
final encrypted = encrypter.encrypt(plain, iv: iv);
return encrypted.base16;
}
static Uint8List encryptionUint8List(String plain) {
final encrypter = Encrypter(AES(key));
final encrypted = encrypter.encrypt(plain, iv: iv);
return encrypted.bytes;
}
まとめ(感想文)
暗号化って大事。