java https安全传输
生活随笔
收集整理的這篇文章主要介紹了
java https安全传输
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2012-09-14 HttpsURLConnection 擴展 HttpURLConnection,支持各種特定于 https 功能。此類使用 HostnameVerifier 和 SSLSocketFactory。為這兩個類都定義了默認實現。但是,可以根據每個類(靜態的)或每個實例來替換該實現。所有新 HttpsURLConnection 實例在創建時將被分配“默認的”靜態值,通過在連接前調用每個實例適當的 set 方法可以重寫這些值 在URL前加https://前綴表明是用SSL加密的。 你的電腦與服務器之間收發的信息傳輸將更加安全。 Web服務器啟用SSL需要獲得一個服務器證書并將該證書與要使用SSL的服務器綁定。 http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。http的連接很簡單,是無狀態的,... HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議 要比http協議安全 [java] import java.io.*;? import java.net.*;? import java.security.*;? import java.security.cert.*;? import javax.net.ssl.*;? public class HttpsURLConnectionTest {? private String url = "<A href="http://127.0.0.1:8080/TestWeb/version">https://127.0.0.1:8080/TestWeb/version</A>"; ? private myX509TrustManager xtm = new myX509TrustManager();? private myHostnameVerifier hnv = new myHostnameVerifier();? public HttpsURLConnectionTest() {? SSLContext sslContext = null;? try {? sslContext = SSLContext.getInstance("TLS"); //或SSL ? X509TrustManager[] xtmArray = new X509TrustManager[] {xtm};? sslContext.init(null, xtmArray, new java.security.SecureRandom());? } catch (GeneralSecurityException e) {? e.printStackTrace();? }? if (sslContext != null) {? HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());? }? HttpsURLConnection.setDefaultHostnameVerifier(hnv);? }? public void run() {? HttpsURLConnection urlCon = null;? try {? urlCon = (HttpsURLConnection)(new URL(url)).openConnection();? urlCon.setDoOutput(true);? urlCon.setRequestMethod("POST");? urlCon.setRequestProperty("Content-Length", "1024");? urlCon.setUseCaches(false);? urlCon.setDoInput(true);? urlCon.getOutputStream().write("Data={\"type\":\"P003\"}".getBytes("gbk"));? urlCon.getOutputStream().flush();? urlCon.getOutputStream().close();? BufferedReader in = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));? String line;? while ((line = in.readLine()) != null) {? System.out.println(line);? }? // 增加自己的代碼 ? } catch (MalformedURLException e) {? e.printStackTrace();? } catch (IOException e) {? e.printStackTrace();? } catch (Exception e) {? e.printStackTrace();? }? }? public static void main(String[] args) {? HttpsURLConnectionTest httpsTest = new HttpsURLConnectionTest();? httpsTest.run();? }? }? /** *//** * 重寫三個方法 * @author Administrator * */? class myX509TrustManager implements X509TrustManager {? public void checkClientTrusted(X509Certificate[] chain, String authType) {? }? public void checkServerTrusted(X509Certificate[] chain, String authType) {? System.out.println("cert: " + chain[0].toString() + ", authType: " + authType);? }? public X509Certificate[] getAcceptedIssuers() {? return null;? }? }? /** *//** * 重寫一個方法 * @author Administrator * */? class myHostnameVerifier implements HostnameVerifier {? public boolean verify(String hostname, SSLSession session) {? System.out.println("Warning: URL Host: " + hostname + " vs. " + session.getPeerHost());? return true;? }? }?
轉載于:https://www.cnblogs.com/huapox/archive/2012/08/01/3516346.html
總結
以上是生活随笔為你收集整理的java https安全传输的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图解:Activity生命周期
- 下一篇: 只想问你一句:“伤害我,你会心疼吗?”