java - 使用 Java 的 AES 加密

标签 java security aes

我一直在使用 AES 加密来验证用户身份。但最近遇到了一个问题,当用户升级其产品并尝试使用其凭据登录时,向 jboss 抛出以下错误消息:

11:17:02,907 INFO  [stdout] (ajp-/0.0.0.0:9009-1) Caused by: aesdpapi.AesDataProtectionAPIException: A native error occured in function 'UnprotectData'.  Error 87 : The parameter is incorrect.

11:17:02,907 INFO  [stdout] (ajp-/0.0.0.0:9009-1) 

11:17:02,907 INFO  [stdout] (ajp-/0.0.0.0:9009-1)   at aesdpapi.AesDataProtectionAPI.unprotectDataNative(Native Method)

11:17:02,907 INFO  [stdout] (ajp-/0.0.0.0:9009-1)   at aesdpapi.AesDataProtectionAPI.unprotectData(AesDataProtectionAPI.java:348)

11:17:02,907 INFO  [stdout] (ajp-/0.0.0.0:9009-1)   at com.gehcit.cp.security.bo.impl.LDAPAuthenticationModel.decryptLdapPasswordUsingAES(LDAPAuthenticationModel.java:348)

11:17:02,907 INFO  [stdout] (ajp-/0.0.0.0:9009-1)   at com.gehcit.cp.security.bo.impl.LDAPAuthenticationModel.getRSAPasswordFromAES(LDAPAuthenticationModel.java:326)

11:17:02,907 INFO  [stdout] (ajp-/0.0.0.0:9009-1)   at com.gehcit.cp.security.bo.impl.LDAPAuthenticationModel.decryptLdapPassword(LDAPAuthenticationModel.java:312)

11:17:02,923 INFO  [stdout] (ajp-/0.0.0.0:9009-1)   at com.gehcit.cp.security.bo.impl.LDAPAuthenticationModel.loadLDAPAttributes(LDAPAuthenticationModel.java:229)

11:17:02,923 INFO  [stdout] (ajp-/0.0.0.0:9009-1)   at com.gehcit.cp.security.bo.impl.LDAPAuthenticationModel.<init>(LDAPAuthenticationModel.java:186)

11:17:02,923 INFO  [stdout] (ajp-/0.0.0.0:9009-1)   at com.gehcit.cp.security.bo.impl.AuthenticationModelFactoryImpl.createInstance_aroundBody0(AuthenticationModelFactoryImpl.java:49)

11:17:02,923 INFO  [stdout] (ajp-/0.0.0.0:9009-1)   at com.gehcit.cp.security.bo.impl.AuthenticationModelFactoryImpl$AjcClosure1.run(AuthenticationModelFactoryImpl.java:1)

11:17:02,923 INFO  [stdout] (ajp-/0.0.0.0:9009-1)   at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)

11:17:02,923 INFO  [stdout] (ajp-/0.0.0.0:9009-1)   at com.gehcit.cp.aop.monitor.MonitoredClassAspect.run(MonitoredClassAspect.java:53)

aesdpapi 是我的自定义库,用于存储 AES 相关文件。我需要知道为什么会出现此异常,导致此异常的可能原因是什么。

我怀疑新版本正在使用新 key 来解密用户密码,该用户密码是在升级产品之前使用旧 key 加密的。升级后生成了新的 key ,无法解密旧 key 加密的密码。

最佳答案

这是由于 Java key 存储文件和证书文件不匹配而发生的。

关于java - 使用 Java 的 AES 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59261710/

相关文章:

java - 在 Java 中提供 RESTful JSON API

Java 相当于 WPF 的 3D 功能

java - 谁能解释一下这段代码如何打印 1 到 10?

php - MySQL/PHP - 转义字符可能会降低我的数据库速度(或使其意外执行)

mysql - 跨应用程序环境的 Amazon RDS 数据库

java - 确定已发生解密

java - JOOq稀疏更新

php - 图片上传安全 - 用 GD 重新处理

java - AES 256 文本加密返回不同的值

java - 给定最终 block 的 AES 加密未正确填充