close

今天看到了一段code是和ssl憑證有關的

用到了MessageDigest來進行解譯

想說加個註解,了解一下code的行為在做什麼

private static byte[] getFingerprint(String httpsURL) 
throws IOException, NoSuchAlgorithmException
, CertificateException, CertificateEncodingException {

    final HttpsURLConnection con = 
      (HttpsURLConnection) new URL(httpsURL).openConnection();
    con.setConnectTimeout(5000);
    con.connect();

    final Certificate cert = con.getServerCertificates()[0];
    final MessageDigest md = MessageDigest.getInstance("SHA1");
    md.update(cert.getEncoded());
    return md.digest();

}

由於公司案子的設計偷懶,沒有把憑證放於app之中

故我是從說好的url取得 certificate

取出來後以 MessageDigest 來處理

 

首先 MessageDigest.getInstance("SHA1") 是用來建立一新實例

參數值只支援以下六種

MD2、MD5、SHA-1、SHA-256、SHA-384、SHA-512

請視情況來建立

 

再來的 update(cert.getEncoded())是在計算 byte[] 物件 buffer 的 Message Digest 值。

最後利用 digest() 來取得 Message Digest 值。

 

 

 

 

 

 

 

 

 


arrow
arrow
    文章標籤
    Andorid
    全站熱搜

    顏澤偉 發表在 痞客邦 留言(0) 人氣()