Tag: bcrypt

使用BCrypt和char

几个小时前,我在Stack Overflow上询问了如何将char []转换为MD5哈希的方法。 提供了一个解决方案,但被认为是不安全的 – 正如几个人所概述的那样: 使用char []生成MD5哈希 Neil Smithline建议我使用BCrypt,但我无法使用char []的。 我使用char []存储从登录表单中检索的密码的原因是因为.getPassword()仅支持char []。 char[] passwordChars = passwordInputField.getPassword(); String hashed = BCrypt.hashpw(passwordChars, BCrypt.gensalt(12)); 目前,我试图使用上面的代码生成一个哈希,但由于变量passwordCars的类型为char [], BCrypt.haspw()不支持它 现在我没有使用常规字符串的唯一原因是因为它无法从内存中清除。 我现在的问题是 – 是否有可能以某种方式使用char []和BCrypt? 提前致谢!

Java:这是对BCrypt的好用吗?

我想知道我当前的BCrypt实现是否正确,我知道我没有使用BCrypt.checkpw()这可能导致一个问题,所以这是我在这里validation它的主要原因。 Hasher.java容器类: abstract public class Hasher { public static String hash(final char[] input) { String output = Hasher.hash(new String(input)); for (int i = 0; i < input.length; i++) { input[i] = 0; } return output; } public static String hash(final String input) { return BCrypt.hashpw(input, BCrypt.gensalt()); } } 这里有一个问题:出于安全原因, JPasswordField给了我一个char[] ,但BCrypt.hashpw()只接受字符串。 如何避免String在我的记忆中漂浮? 登录的客户端实现: String hashedPassword […]

如何在Coldfusion8中使用javaloader设置java库?

我正在尝试让javaLoader在Coldfusion8应用程序中运行,我需要一些帮助才能让我跨越终点线。 这是我到目前为止: 在application.cfc里面: … THIS.mappings[“/javaloader”] = GetDirectoryFromPath( GetCurrentTemplatePath() ) & “tools/javaloader”; … Application.str = structNew(); Application.str.myJavaLoaderKey = “someUUID_javaloader”; Application.str.jarPaths = arrayNew(1); 这是按照此处和此处的说明完成的。 在我的handler.cfc中 ,我试图访问javaloader和BCrypt类,如下所示: pass = “some_password”; cryptonite = server[Application.str.myJavaLoaderKey]; bCrypt = cryptonite.init(Application.str.jarPaths[1]); hashed = bCrypt.hashpw(pass, bcrypt.gensalt()); 我可以转储cryptonite变量,但是当我尝试创建BCrypt实例时,脚本失败了。 问题 : 我很高兴我做到这一点,但我现在已经坐了几个小时了,不知道我做错了什么。 希望有更多洞察力的人可以指出我的方向? 感谢帮助!

Java BCrypt不支持更新版本(种子前缀为2b,2y等)

我正在使用jBCrypt(在Java中),它无法从PHP或Python处理较新版本的BCrypt。 例外是“无效的盐修订版”,因为它只支持“2a”版本。 是否有另一个更新的BCrypt Java库?

BCrypt.checkpw()无效的盐版本exception

我正在尝试使用BCrypt在我的Play 2.1中实现身份validation。 Java应用程序,但是当我尝试对用户进行身份validation时,我收到了Invalid salt version exception 。 这是我的堆栈跟踪 play.api.Application$$anon$1: Execution exception[[IllegalArgumentException: Invalid salt version]] at play.api.Application$class.handleError(Application.scala:289) ~[play_2.10.jar:2.1.0] at play.api.DefaultApplication.handleError(Application.scala:383) [play_2.10.jar:2.1.0] at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:132) [play_2.10.jar:2.1.0] at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:128) [play_2.10.jar:2.1.0] at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.0] at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.0] java.lang.IllegalArgumentException: Invalid salt version at org.mindrot.jbcrypt.BCrypt.hashpw(BCrypt.java:664) ~[jbcrypt-0.3m.jar:na] at org.mindrot.jbcrypt.BCrypt.checkpw(BCrypt.java:763) ~[jbcrypt-0.3m.jar:na] at model.operations.DistrictOperations.authenticate(DistrictOperations.java:24) ~[na:na] at controllers.Application.authenticateDistrict(Application.java:26) ~[na:na] at Routes$$anonfun$routes$1$$anonfun$applyOrElse$2$$anonfun$apply$2.apply(routes_routing.scala:133) ~[na:na] at Routes$$anonfun$routes$1$$anonfun$applyOrElse$2$$anonfun$apply$2.apply(routes_routing.scala:133) ~[na:na] 我正在使用以下maven存储库: […]

BCrypt性能恶化

我们在Jboss服务器6.1中运行了三个Web应用程序(标准的Spring MVC-Hibernate)。 所有这三个应用程序共享一个通用的身份validation方法,该方法被编译为JAR并包含在每个WAR文件中。 我们的身份validation方法使用org.springframework.security.crypto.bcrypt.BCrypt来哈希用户密码,请参阅以下内容: hashedPassword.equals(BCrypt.hashpw(plainTextPassword, salt)); JBOSS启动选项 set “JAVA_OPTS=-Xms2048m -Xmx4096m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -verbosegc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:gc.txt -XX:+UseParallelOldGC 问题:当服务器重新启动时,Bcrypt.hashpw需要100ms来解密密码。 然而,经过一段时间(没有模式),Bcrypt.hashpw性能突然从100毫秒增加到10秒。 这没有明显的原因。 更多信息: Hibernate版本:4.2.4.Final Spring Version:4.0.5.RELEASE Spring 安全版本:3.2.4.RELEASE 有没有其他人见过这个问题?

使用Spring Security从MD5切换到BCrypt

到目前为止,我的应用程序是使用简单的MD5算法散列用户密码,现在我们在应用程序中引入了Spring Security,并且更喜欢使用BCrypt。 我的问题如何将旧密码迁移到新算法。 我可以为Spring Security提供多个密码编码器,以便可以依次使用它们吗? 成功登录后如何更改密码,因为密码是使用SHA1算法传输的? 对于问题1,我相信使用CustomAuthenticationProvider可能会有效,但我对如何在我们的系统中使用它感到困惑。 下面是我在SecurityConfig类中的configureGlobal函数 @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.jdbcAuthentication() .dataSource(dataSource) .passwordEncoder(passwordEncoder) .usersByUsernameQuery(“SELECT uname AS username, upwd AS password, true AS enabled FROM user_table WHERE uname!=” AND uname IS NOT NULL AND uname=?”) .authoritiesByUsernameQuery(“SELECT uname AS username, ‘Default’ AS role FROM user_table WHERE uname!=” AND uname IS NOT […]