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 StringdecryptPassword(String encryptedPassword, String salt) 使用AES解密密码static StringencryptPassword(String password, String salt) 使用AES加密密码private static StringgenerateKeyFromSalt(String salt) 从盐值生成密钥 根据盐值确定密钥生成方式,与前端JavaScript实现保持一致static booleanvalidateCrypto(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:
- 是否验证成功
-