프로그래밍/Flutter
[Flutter] AES 암호화
YuminK
2022. 5. 13. 09:15
encrypt 패키지를 사용하고 있습니다.
AESKey를 넣어주면 16자리 키보다 작으면 늘리고 크면 16자리로 잘라서 사용합니다. (키를 16자리로 맞춰야 함)
그 외 empty값이 들어오면 죽어가지고 예외 처리 해주고 있습니다.
import 'package:encrypt/encrypt.dart';
String encrypt(String strAesKey, String strValue) {
if(strValue.isEmpty) {
return "";
}
if(strAesKey.length < 16) {
strAesKey = strAesKey + ' ' * (16 - strAesKey.length);
} else {
strAesKey = strAesKey.substring(0, 16);
}
final encrypted = Encrypter(AES(Key.fromUtf8(strAesKey)))
.encrypt(strValue, iv: IV.fromLength(16));
return encrypted.base64;
}
String decrypt(String strAesKey, String strValue) {
if(strValue.isEmpty) {
return "";
}
if(strAesKey.length < 16) {
strAesKey = strAesKey + ' ' * (16 - strAesKey.length);
} else {
strAesKey = strAesKey.substring(0, 16);
}
final decrypted = Encrypter(AES(Key.fromUtf8(strAesKey)))
.decrypt64(strValue, iv: IV.fromLength(16));
return decrypted;
}