第十週學習總結

第十週學習總結java

TCP編程以及UDP方式的網絡編程
•在Java語言中,數據傳輸功能由Java IO實現,也就是說只須要從鏈接中得到輸入流和輸出流便可,而後將須要發送的數據寫入鏈接對象的輸出流中,在發送完成之後從輸入流中讀取數據便可。
OutputStream os = socket1.getOutputStream(); //得到輸出流算法

InputStream is = socket1.getInputStream(); //得到輸入流
•在Java API中,實現UDP方式的編程,包含客戶端網絡編程和服務器端網絡編程,主要由DatagramSocket與DatagramPacket兩個類實現。編程

Java 密碼學算法數組

密碼學基礎
•咱們遇到的安全問題能夠歸結爲安全的三個屬性(CIA金三角):機密性,完整性和可用性。瀏覽器

•密碼學包含密碼編碼學( Cryptography) 和密碼分析學(Cryptanalyst) 兩個分支。 編碼學與分析學相互促進, 又相互制約。 一方面, 二者在增強密碼分析的安全上相互促進; 另外一方面,二者在實施更爲有效的攻擊方面也相互影響。安全

•密碼學經常使用術語有:明文、密文、加密、解密、放送者、接收者、加密算法、解密算法、加密祕鑰、解密祕鑰、被動攻擊、主動攻擊、密碼協議等等。服務器

•用保密通訊模型來詮釋密碼學中信息傳送方式,以下圖:網絡

•如下六種技術統稱爲密碼學家的工具箱:對稱密碼、公鑰密碼、單向散列函數、消息認證碼、數字簽名以及僞隨機數生成器。socket

Java與密碼學
•Java安全體系結構總共分爲4個部分:JCA( Java Cryptography Architecture, Java加密體系結構)、JCE( Java Cryptography Extension, Java加密擴展包)、JSSE( Java Secure Sockets Extension, Java安全套接字擴展包)、JAAS( Java Authentication and Authentication Service, Java鑑別與安全服務)。ide

•JCA和JCE是Java平臺提供的用於安全和加密服務的兩組API。它們並不執行任何算法,它們只是鏈接應用和實際算法實現程序的一組接口。 軟件開發商能夠根據JCE接口( 又稱安全提供者接口) 將各類算法實現後,打包成一個Provider( 安全提供者) , 動態地加載到Java運行環境中。

Java對稱加密-DES算法
•將密鑰經過對象序列化方式保存在文件中,編程思路:(1) 獲取密鑰生成器,(2) 初始化密鑰生成器,(3) 生成密鑰,(4) 經過對象序列化方式將密鑰保存在文件中。

•將密鑰經過字節保存在文件中,編程思路:Java中全部的密鑰類都有一個getEncoded( )方法,經過它能夠從密鑰對象中獲取主要編碼格式,其返回值是字節數組。其主要步驟爲:(1) 獲取密鑰、(2)獲取主要編碼格式、(3) 保存密鑰編碼格式

Java非對稱加密-RSA算法

Java的KeyPairGenerator類提供了一些方法來建立密鑰對以便用於非對稱加密,密鑰對建立好後封裝在KeyPair類型的對象中,在KeyPair類中提供了獲取公鑰和私鑰的方法。具體步驟以下:
(1) 建立密鑰對生成器,(2) 初始化密鑰生成器,(3) 生成密鑰對,(4) 獲取公鑰和私鑰。

使用密鑰協定建立共享密鑰
•非對稱加密解決了密鑰分發的難題,但其計算量比對稱密鑰大,所以通常並不使用非對稱加密加密大量數據。常見的作法是:主要數據經過對稱密鑰加密,而使用非對稱加密來分發對稱密鑰,這樣就將二者的優點結合了起來。

•除了這種方式之外,還可使用密鑰協定來交換對稱密鑰。執行密鑰協定的標準算法是DH算法。1.建立DH公鑰和私鑰,2.建立共享密鑰。

Java摘要算法- MD5
•使用Java計算指定字符串的消息摘要。
java.security包中的MessageDigest類提供了計算消息摘要的方法。
(1) 生成MessageDigest對象
MessageDigest m=MessageDigest.getInstance("MD5");
(2) 傳入須要計算的字符串
m.update(x.getBytes("UTF8" ));
(3) 計算消息摘要
byte s[ ]=m.digest( );
(4) 處理計算結果。

網絡
•網絡能夠分爲:局域網和廣域網。

•計算機網絡體系結構的通訊協議劃分爲七層,自下而上依次爲:物理層(Physics Layer)、數據鏈路層(Data Link Layer)、網絡層(Network Layer)、傳輸層(Transport Layer)、會話層(Session Layer)、表示層(Presentation Layer)、應用層(Application Layer)。其中第四層完成數據傳送服務,上面三層面向用戶。

HTTP協議
•超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最爲普遍的一種網絡協議。全部的WWW文件都必須遵照這個標準。

•一次HTTP請求包含:方法、請求頭、請求實體。

java.net.URL以及java.net.URLConnection
•URL:統一資源定位符是對能夠從互聯網上獲得的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每一個文件都有一個惟一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎麼處理它。

•java.net.HttpURLConnection類是另一種訪問HTTP資源的方式.HttpURLConnection類具備徹底的訪問能力,能夠取代HttpGet和HttpPost類.使用HttpUrlConnection訪問HTTP資源可使用以下六步: (1)使用java.net.URL封裝HTTP資源的url,並使用openConnection方法得到HttpUrlConnection對象 (2)設置請求方法,例如GET,POST等 (3)設置輸入輸出及其餘權限.若是要下載HTTP資源或向服務端上傳數據,須要使用以下代碼進行設置. 下載HTTP資源,須要將setDoInput方法的參數值設爲true (4)設置http請求頭.在不少狀況下,要根據實際狀況設置一些HTTP請求頭,例以下面的代碼設置了Charset請求頭的值爲UTF-8. (5)輸入和輸出數據.這一步是對HTTP資源的讀寫操做.也就是經過InputStream和OutputStream讀取和寫入數據.下面的代碼得到了InputStream對象和OutputStream對象. (6)關閉輸入和輸出流.雖然關閉輸入輸出流並非必需的,在應用程序結束後,輸入輸出流會自動關閉,但顯示關閉輸入輸出流是一個好習慣.

相關文章
相關標籤/搜索