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