如何在 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");
}