)) return JBCRYPT_ENCODER.isPasswordValid(encPass.substring(JBCRYPT_HEADER.length()), = "#jbcrypt:"; }; 通过分析该源码得知: 明文通过 jbcrypt 算法得到密文 encPass 密文的格式为:salt: encPass,其中以 #jbcrypt 表示 salt 作为数据头 jbcrypt 是什么? jbcrypt 是 bcrypt 加密工具的 java 实现。 总结 综上, Jenkins 专有用户数据库使用了 jbcrypt 加密, jbcrypt 加密是不可逆的,而且对于同一个明文的加密结果一般不同。
在 github上查看其源码,通过关键字 #jbcrypt搜索定位到 HudsonPrivateSecurityRealm.java这个文件 HudsonPrivateSecurityRealm.java hudson/security/HudsonPrivateSecurityRealm.java 通过分析该源码得知: 1、密文的格式为:salt: encPass,其中以#jbcrypt 表示salt作为数据头 2、明文通过jbcrypt算法得到密文 encPass 关于jbcrypt: jbcrypt是bcrypt加密工具的java实现。 System.out.println("It matches"); else System.out.println("It does not match"); 经验证,用jbcrypt 综上,Jenkins专有用户数据库使用了jbcrypt加密,jbcrypt加密是不可逆的,而且对于同一个明文的加密结果一般不同。
通常我们会使用 BCrypt 的实现库,比如 Spring Security 或 jBCrypt。 1. 使用 jBCrypt 库 首先,你需要在项目中添加 jBCrypt 依赖。 如果你使用 Maven,可以在 pom.xml 中添加以下依赖: <dependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt 示例代码 下面是一个简单的示例,演示如何使用 jBCrypt 进行密码的哈希和验证。 import org.mindrot.jbcrypt.BCrypt; public class BcryptExample { // 哈希密码 public static String 使用 jBCrypt 库可以方便地在 Java 中实现 Bcrypt。 特殊说明: 上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!
1、Jenkies的加密方式 Jenkins的密码采用的是Java加解密工具 jBCrypt,我也是第一次接触到这种加密方式,实在被他惊叹到了! 附上Java源码 import org.mindrot.jbcrypt.BCrypt; /** * Created by Administrator on 2017/6/2. 备注:jar包下载地址 http://mvnrepository.com/artifact/org.mindrot/jbcrypt 2、修改Jenkins的admin密码 ?
user.conf user.conf 就是忘记密码对应的用户 针对 yum install jenkins 安装的Jenkins,它的HOME目录位于 /var/lib/jenkins/ 下面 修改 #jbcrypt :$2a$10$QqzUz7kc8U8wkc5vexlxnuw5umudQj7A.0NmuZPrGMaq3qaV5m7hi 为 #jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS
JBcrypt是一个外部的包,提供了Bcrypt功能。 javaJdbc, javaEbean, cache, "mysql" % "mysql-connector-java" % "5.1.18", "org.mindrot" % "jbcrypt " % "0.3m" ) play.Project.playJavaSettings 即上面新增的jbcrypt行。 World", passwordHash); return ok(passwordHash + " " + correct + " " + wrong); } 上面程序需引入org.mindrot.jbcrypt.BCrypt User.java: package models; import javax.persistence.*; import play.db.ebean.Model; import org.mindrot.jbcrypt.BCrypt
就是你忘记密码对应的用户文件夹 如果是java -jar方式启动的,HOME目录位于/root/.jenkins 修改config.xml,找到 passwordHash部分,替换原有的hash值 把 #jbcrypt :$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS 修改为 #jbcrypt:$2a$10$4NW.9hNVyltZlHzrNOOjlOgfGrGUkZEpBfhkaUrb7ODQKBVmKRcmK
config.xml 选择用户名相关的文件: cat /var/jenkins_home/users/root_9685925808796613467/config.xml 找到passwordHash标签: #jbcrypt :$2a 10 10 10yB8omAzzWpk1oNToWQPIWewpqBKbhJGUU5UDd470yJCN3HVXqCDc6 密码就在#jbcrypt:后面,即 $2a$10$yB8omAzzWpk1oNToWQPIWewpqBKbhJGUU5UDd470yJCN3HVXqCDc6 我们可以改成: $2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS 即密码:111111 或者 #jbcrypt:$2a$10$MiIVR0rr Jenkins采用Java加密工具jBCrypt,所以我们在生成密码的时候需要添加相关的jar包。 <dependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt</artifactId> <version>0.4
cd /var/lib/jenkins/users/admin vim config.xml //定位到<passwordHash>那一行 删除改行,改为 <passwordHash>#jbcrypt
--Bcrypt包依赖2 选择任一即可 <dependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt</
忘记用户密码 /home/jenkins/.jenkins/users目录下有所有用户信息,打开对应用户的xml配置文件,找到passwordHash内容,修改为: #jbcrypt:$2a
忘记用户密码 /home/jenkins/.jenkins/users目录下有所有用户信息,打开对应用户的xml配置文件,找到passwordHash内容,修改为: #jbcrypt:$2a
// 示例:使用 bcrypt 加密密码 import org.mindrot.jbcrypt.BCrypt; String hashed = BCrypt.hashpw("mypassword
hudson.model.TimeZoneProperty/> <hudson.security.HudsonPrivateSecurityRealm_-Details> <passwordHash>#jbcrypt
2676914209327834400/config.xml: 可见,我们拿到了三个重要信息: 用户密码,使用JBCript哈希编码 用户Token,使用sha256哈希编码 用户种子,这个后面会用到 第一个,用户密码是以#jbcrypt 我们将这个哈希值前面的#jbcrypt:去掉,并将第一个2a改成2y,就成为一个标准的bcrypt哈希值了。
users/admin #此为admin用户的目录,也可以对应自己创建的用户 vim config.xml //定位到<passwordHash>那一行 删除改行,改为 <passwordHash>#jbcrypt
users/admin #此为admin用户的目录,也可以对应自己创建的用户 vim config.xml //定位到<passwordHash>那一行 删除改行,改为 <passwordHash>#jbcrypt
share/cassandra/lib/jamm-0.3.0.jar /usr/share/cassandra/lib/javax.inject.jar /usr/share/cassandra/lib/jbcrypt jamm-0.3.0.txt /usr/share/cassandra/lib/licenses/javax.inject.txt /usr/share/cassandra/lib/licenses/jbcrypt share/cassandra/lib/jamm-0.3.0.jar:/usr/share/cassandra/lib/javax.inject.jar:/usr/share/cassandra/lib/jbcrypt
Java中使用bcrypt 可以在官网(http://www.mindrot.org/projects/jBCrypt/ )获取该算法的源代码。
Java中使用bcrypt 可以在官网(http://www.mindrot.org/projects/jBCrypt/ )获取该算法的源代码。