Package com.bytedesk.core.utils
Class PasswordCryptoUtils
java.lang.Object
com.bytedesk.core.utils.PasswordCryptoUtils
密码加密解密工具类
与前端JavaScript实现保持一致的AES加密解密
修复说明:
- 统一前后端密钥生成方式,解决 BadPaddingException 问题
- 对于特定盐值 "bytedesk_salt",使用固定密钥 "bytedesk_license"(与前端保持一致)
- 对于其他盐值,使用SHA-256哈希生成16字节密钥(128位AES)
- 加密算法:AES/ECB/PKCS5Padding
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String
decryptPassword
(String encryptedPassword, String salt) 使用AES解密密码static String
encryptPassword
(String password, String salt) 使用AES加密密码private static String
generateKeyFromSalt
(String salt) 从盐值生成密钥 根据盐值确定密钥生成方式,与前端JavaScript实现保持一致static boolean
validateCrypto
(String originalPassword, String salt) 验证加密解密功能
-
Field Details
-
ALGORITHM
- See Also:
-
TRANSFORMATION
- See Also:
-
-
Constructor Details
-
PasswordCryptoUtils
public PasswordCryptoUtils()
-
-
Method Details
-
encryptPassword
使用AES加密密码- Parameters:
password
- 原始密码salt
- 盐值,用作加密密钥的一部分- Returns:
- 加密后的密码(Base64编码)
-
decryptPassword
使用AES解密密码- Parameters:
encryptedPassword
- 加密后的密码(Base64编码)salt
- 盐值,用作解密密钥的一部分- Returns:
- 解密后的原始密码
-
generateKeyFromSalt
从盐值生成密钥 根据盐值确定密钥生成方式,与前端JavaScript实现保持一致- Parameters:
salt
- 盐值- Returns:
- 密钥字符串
-
validateCrypto
验证加密解密功能- Parameters:
originalPassword
- 原始密码salt
- 盐值- Returns:
- 是否验证成功
-