- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试检查我之前加密过的密码,但出现异常,我不知道为什么。
这是我用来加密密码的方法:
@Service("XEncryptor")
public class XEncryptor {
private ConfigurablePasswordEncryptor configurablePasswordEncryptor;
//some parameters and init methods
public String encryptPassword(String password){
configurablePasswordEncryptor.setAlgorithm("SHA-1");
configurablePasswordEncryptor.setPlainDigest(true);
return configurablePasswordEncryptor.encryptPassword(password);
}
// i use this one to check the password
public boolean checkPassword(String inputPassword, String encryptedPassword){
return configurablePasswordEncryptor.checkPassword(inputPassword, encryptedPassword);
}
}
在 Controller 中,我尝试在执行登录之前检查密码。我从 XEncryptor 的服务调用 checkPassword 但不起作用。
这里的调用:
xEncryptor.checkPassword(password, user.getPassword());
password = user.getPassword();
//do login ...
当我评论checkPassword时,登录将成功执行。
第一个参数(密码)是用户通过登录发送的内容,第二个参数是我从数据库获取的加密密码。
我在注册过程中使用这行代码对密码进行加密:
password = xEncryptor.encryptPassword(password);
user.setPassword(password);
加密工作成功。
这里是错误日志:
boot - 42487 ERROR [http-nio-8443-exec-4] --- [dispatcherServlet]: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.jasypt.exceptions.EncryptionOperationNotPossibleException] with root cause
org.jasypt.exceptions.EncryptionOperationNotPossibleException
at org.jasypt.digest.StandardByteDigester.matches(StandardByteDigester.java:1106)
at org.jasypt.digest.StandardStringDigester.matches(StandardStringDigester.java:1052)
at org.jasypt.util.password.ConfigurablePasswordEncryptor.checkPassword(ConfigurablePasswordEncryptor.java:251)
at com.x.server.helper.XEncryptor.checkPassword(XEncryptor.java:28)
at com.x.server.controller.LoginController.login(LoginController.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration$ApplicationContextHeaderFilter.doFilterInternal(EndpointWebMvcAutoConfiguration.java:243)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:111)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:103)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
有什么想法吗?感谢您的帮助。
最佳答案
来自http://www.jasypt.org/api/jasypt/1.8/org/jasypt/util/password/ConfigurablePasswordEncryptor.html :
The required steps to use it are:
Create an instance (using new). Configure if needed with the setX() methods. Perform the desired encryptPassword(String) or checkPassword(String, String) operations.
我不知道如何创建新实例,但由于您没有收到 NullPointerException 这不应该是问题。EncryptionOperationNotPossibleException
通常是指缺少配置。
如果可能,您应该进行一次配置(在创建新的加密器实例之后),而不是每次方法调用...
configurablePasswordEncryptor = new ConfigurablePasswordEncryptor();
configurablePasswordEncryptor.setAlgorithm("SHA-1");
configurablePasswordEncryptor.setPlainDigest(true);
否则,在您的 checkPassword
方法中,您可能还想设置算法和摘要模式:
public boolean checkPassword(String inputPassword, String encryptedPassword){
configurablePasswordEncryptor.setAlgorithm("SHA-1");
configurablePasswordEncryptor.setPlainDigest(true);
return configurablePasswordEncryptor.checkPassword(inputPassword, encryptedPassword);
}
关于java - 检查加密密码: org. jasypt.exceptions.EncryptionOperationNotPossibleException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39132107/
我尝试在我的 Jasypt 中使用 3DES,但遇到异常。 但是当我使用默认算法时它工作正常 这是代码 - public MyEncryptablePropertyResolver(Environme
尝试使用 encrypt.sh 实用程序,我的密码包含特殊字符: ./encrypt.sh input="$%#!"password="your_jasypt_password"algorithm="
我有简单的java控制台应用程序,我在其中使用Jasypt1.9.2来加密数据库连接字符串。代码在 Eclipse 中运行得很好,但是导出为 Jar 的应用程序会出现此错误 这是我的简单主类:
我正在使用grails Jasypt Encryption plugin加密数据库中的数据。 如果我在Config.groovy文件中设置jasypt配置,例如: jasypt { algor
我只是想知道是否可以强制加密器始终为相同的输入返回相同的加密值。 StandardPBEStringEncryptorencryptor = new StandardPBEStringEncrypto
同事们,我在我的 spring-boot 项目中使用了 Jasypt(在 Windows 上运行的独立 jar)。我需要通过命令行传递主密码才能运行 jar 。它看起来像: java -jar -Dj
情况是我有一个使用 hibernate 的应用程序。我将其配置为与 jasypt 一起使用,以便该应用程序将数据加密到数据库中。然后,我有另一个从数据库读取数据的应用程序,它不使用 hibernate
我们的安全部门希望我们使用 256 位加密来加密 SSN、用户名等,因此我们决定使用 JASYPT,示例代码如下: encryptor = new StandardPBEStringEncryptor
我想使用 Jasypt 库通过 EncryptablePropertyPlaceholderConfigurer 类在 Spring 中解密属性。我想使用非对称公钥/私钥方法加密/解密这些属性。 您能
我正在用 Java 编写一个需要对字符串进行加密和解密的程序。我正在使用 Jasypt 的 BasicTextEnctyptor。这是一个复杂的应用程序——使用异步网络和类似的东西。加密在服务器和客户
我想知道是否有像 JASYPT 这样的替代库,它可以帮助我加密/解密密码。 最佳答案 是的,有一些。我不确定你到底在找什么,但我一直在使用 BouncyCastle取得了巨大的成功。也许您也会感兴趣。
几天前,我提出了一个有关 Jasypt 问题的问题。我引用了一个抛出 EncryptionOperationNotPossibleException 的较大程序。嗯,我还是没能弄清楚问题所在。这是正在
我将 Hibernate3 与 MySql DB 一起使用,并尝试添加 Jasypt 库来处理用户密码的加密。 我在 hibernate.cfg.xml 中配置了 Jasypt,如下所示: o
我正在尝试桌面应用程序的登录/注册系统。我有一个注册表单和登录表单,凭证信息保存到 PostgreSQL 数据库中。我一开始没有加密信息,一切正常,但现在我想加密密码以保存到数据库中。我正在使用Jas
在 org.jasypt.encryption.pbe.StandardPBEByteEncryptor 中,当我比较其他几个 key 派生功能时, key 派生看起来有所不同。 initialize
在我们基于 Spring + hibernate 的 Web 应用程序中,我配置了 jasypt 来加密存储在数据库中的用户联系电话。它对加密工作正常,因为数据库包含加密字符串,而且值已解密并正确显示
您好,我有一个 Java 应用程序。我想使用 Jasypt 使用基于大小和算法生成的随机盐来加密和解密密码。 这就是我想要实现的。 创建一个随机盐。 用盐加密密码。 为用户保存盐和加密密码。 我想要盐
我使用 Java 6、Jasypt 和 BouncyCaSTLe 生成散列密码。我将它们存储在具有默认 UTF-8 字符编码的 MySQL 5.5 数据库中。我试图弄清楚我使用 SHA-256 哈希算
它适用于桌面应用程序,因此我只需要基本的登录安全性,并且我使用一个函数来加密密码,并使用另一个函数将密码从 UI 传递并散列保存到数据库中,并返回 true 或 false 取决于是否匹配。 我尝试使
加密我使用的密码(修改自 http://www.jasypt.org/encrypting-texts.html ): BasicTextEncryptor textEncryptor = new B
我是一名优秀的程序员,十分优秀!