import '../../../core/utils/crypto_utils.dart'; class SecureLoginRequest { final String username; final String passwordHash; // 客户端哈希后的密码 final String salt; // 盐值 final String? clientKey; // 客户端密钥(用于加密传输) SecureLoginRequest({ required this.username, required this.passwordHash, required this.salt, this.clientKey, }); Map toJson() { return { 'username': username, 'password_hash': passwordHash, 'salt': salt, 'client_key': clientKey, }; } // 工厂方法:创建安全的登录请求 factory SecureLoginRequest.create({ required String username, required String password, }) { // 生成盐值 final salt = CryptoUtils.generateSalt(); // 密码加盐哈希 final passwordWithSalt = password + salt; final passwordHash = CryptoUtils.sha256Hash(passwordWithSalt); // 生成客户端密钥(可选,用于进一步加密) final clientKey = CryptoUtils.generateClientKey(); return SecureLoginRequest( username: username, passwordHash: passwordHash, salt: salt, clientKey: clientKey, ); } }