當前位置:編程學習大全網 - 源碼下載 - java HttpsURLConnection如何繞過證書,原理是什麽?

java HttpsURLConnection如何繞過證書,原理是什麽?

進口?Java . security . cert . x509 certificate;

進口?javax . net . SSL . hostname verifier;

進口?javax . net . SSL . httpsurlconnection;

進口?javax . net . SSL . SSL context;

進口?javax . net . SSL . SSL session;

進口?javax . net . SSL . x 509 trust manager;

公共?班級?MyHttpsConnection?{

私人?myX509TrustManager?xtm?=?新的?myx 509 trust manager();

私人?myHostnameVerifier?hnv?=?新的?myhostname verifier();

公共?MyHttpsConnection()?{

SSLContext?sslContext?=?null

試試?{

sslContext?=?SSL context . getinstance(" TLS ");

X509TrustManager[]?xtmArray?=?新的?X509TrustManager[]?{?xtm?};

sslContext.init(null,xtmArray,?新的?Java . security . securerandom());

}?接住?(例外?gse)?{

GSE . printstacktrace();

}

如果?(sslContext?!=?null)?{

httpsurlconnection . setdefaultsslsocketfactory(SSL context . getsocketfactory());

}

httpsurlconnection . setdefaulthostname verifier(hnv);

}

}

班級?myX509TrustManager?器物?X509TrustManager?{

公共?myX509TrustManager()?{

}

公共?作廢?checkClientTrusted(x509 certificate[]?鏈,?字符串?authType)?{

}

公共?作廢?checkserver trusted(x509 certificate[]?鏈,?字符串?authType)?{

}

公共?X509Certificate[]?getAcceptedIssuers()?{

回歸?null

}

}

班級?myHostnameVerifier?器物?主機名驗證器?{

公共?myHostnameVerifier()?{

}

公共?布爾?驗證(字符串?主機名,?SSLSession?會話)?{

回歸?真實;

}

}調用時類似。

new myhttps connection();

URLConnection urlCon =(新URL(url))。open connection();

urlcon . setconnecttimeout(5000);

  • 上一篇:需要更多關於Deepside的信息!
  • 下一篇:鴻蒙OS開放下載,單挑Android的華為鴻蒙系統長啥樣?
  • copyright 2024編程學習大全網