Jenkins修改管理员密码,我看了网上所有的教程,竟然全都是拿着一串已经加密好的 111111 的密文去替代 config.xml 文件里面的密码,然后大家的密码都是 111111!我觉得这种做法实在太敷衍了!于是我就研究了下,包括 Jenkins 密码的加密方式,以及如何修改管理员的密码,当然,通过配置Jenkins允许注册用户,去注册一个用户,也不失为一个好选择。
1、Jenkins的加密方式
Jenkins 的密码采用的是Java 加解密工具 jbcrypt,这种加密方式每次加密同一个明文竟然都是得到不一样的结果,那他又是通过怎样的方式来解密的呢?原来,他拿着用户的明文,和存储的密文去重新生成一串密文去判断。总结如下,它有以下特点:
关于 Bcrypt:
1、Bcrypt 是不可逆的加密算法,无法通过解密密文得到明文。
2、Bcrypt 和其他对称或非对称加密方式不同的是,不是直接解密得到明文,也不是二次加密比较密文,而是把明文和存储的密文一块运算得到另一个密文,如果这两个密文相同则验证成功。
3、对于同一个明文的加密结果一般不同。
pom 依赖:
<!-- https://mvnrepository.com/artifact/org.mindrot/jbcrypt --> <dependency> groupId>org.mindrot</artifactId>jbcryptversion>0.4> >
Java源码
import org.mindrot.jbcrypt.BCrypt; /** * Created by Administrator on 2017/6/2. * <p> * Description: */ public class Test { static void main(String[] args) { //这是加密方式 String hashed = BCrypt.hashpw("nimda",BCrypt.gensalt()); System.out.println(hashed); 这是解密方式 if (BCrypt.checkpw("nimda"); else System.out.println("It does not match"); } }
2、修改Jenkins的admin密码