前言: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");
else
System.out.println("It does not match");
}
}

備注:jar包下載下傳位址
http://mvnrepository.com/artifact/org.mindrot/jbcrypt2、修改Jenkins的admin密碼
3、重新開機Jenkins,就可以看到修改效果了。
http://localhost:8080/restart