这是CaiYouHui前端,一个关于flutter的安卓app,前端使用flutter实现

secure_login_request.dart 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import '../../../core/utils/crypto_utils.dart';
  2. class SecureLoginRequest {
  3. final String username;
  4. final String passwordHash; // 客户端哈希后的密码
  5. final String salt; // 盐值
  6. final String? clientKey; // 客户端密钥(用于加密传输)
  7. SecureLoginRequest({
  8. required this.username,
  9. required this.passwordHash,
  10. required this.salt,
  11. this.clientKey,
  12. });
  13. Map<String, dynamic> toJson() {
  14. return {
  15. 'username': username,
  16. 'password_hash': passwordHash,
  17. 'salt': salt,
  18. 'client_key': clientKey,
  19. };
  20. }
  21. // 工厂方法:创建安全的登录请求
  22. factory SecureLoginRequest.create({
  23. required String username,
  24. required String password,
  25. }) {
  26. // 生成盐值
  27. final salt = CryptoUtils.generateSalt();
  28. // 密码加盐哈希
  29. final passwordWithSalt = password + salt;
  30. final passwordHash = CryptoUtils.sha256Hash(passwordWithSalt);
  31. // 生成客户端密钥(可选,用于进一步加密)
  32. final clientKey = CryptoUtils.generateClientKey();
  33. return SecureLoginRequest(
  34. username: username,
  35. passwordHash: passwordHash,
  36. salt: salt,
  37. clientKey: clientKey,
  38. );
  39. }
  40. }