| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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<String, dynamic> 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,
- );
- }
- }
|