如何在 Flutter-SQLite-Dart 应用程序中保存数据库时加密密码?
How to encrypt password while saving in database in Flutter-SQLite-Dart application?
我正在使用 Flutter、Dart 和 SQLite 开发移动应用程序。它只是一个登录页面验证类型的项目,我需要在插入数据库时加密密码和用户的个人详细信息。至少我希望密码被加密。如何实现这一目标?
您可以使用 encrypt 插件来加密字符串。
对于高级加密标准 (AES),您可以这样做:
final plainText = 'YOUR_PASSWORD';
final key = Key.fromUtf8('my 32 length key................');
final iv = IV.fromLength(16);
final encrypter = Encrypter(AES(key));
final encrypted = encrypter.encrypt(plainText, iv: iv);
final decrypted = encrypter.decrypt(encrypted, iv: iv);
print(decrypted); // YOUR_PASSWORD
print(encrypted.base64);// YOUR_ENCRYPTED_STRING
我已经为 Dart 使用了加密哈希函数,它对我来说工作得很好。
下面的代码是我用来散列密码的。
import 'package:crypto/crypto.dart';
import 'dart:convert'; // for the utf8.encode method
void main() {
var bytes = utf8.encode("password"); // data being hashed
var digest = sha256.convert(bytes);
print("Digest as bytes: ${digest.bytes}");
print("Digest as hex string: $digest");
}
我正在使用 Flutter、Dart 和 SQLite 开发移动应用程序。它只是一个登录页面验证类型的项目,我需要在插入数据库时加密密码和用户的个人详细信息。至少我希望密码被加密。如何实现这一目标?
您可以使用 encrypt 插件来加密字符串。
对于高级加密标准 (AES),您可以这样做:
final plainText = 'YOUR_PASSWORD';
final key = Key.fromUtf8('my 32 length key................');
final iv = IV.fromLength(16);
final encrypter = Encrypter(AES(key));
final encrypted = encrypter.encrypt(plainText, iv: iv);
final decrypted = encrypter.decrypt(encrypted, iv: iv);
print(decrypted); // YOUR_PASSWORD
print(encrypted.base64);// YOUR_ENCRYPTED_STRING
我已经为 Dart 使用了加密哈希函数,它对我来说工作得很好。
下面的代码是我用来散列密码的。
import 'package:crypto/crypto.dart';
import 'dart:convert'; // for the utf8.encode method
void main() {
var bytes = utf8.encode("password"); // data being hashed
var digest = sha256.convert(bytes);
print("Digest as bytes: ${digest.bytes}");
print("Digest as hex string: $digest");
}