我正在使用Java的客戶端服務器應用程序,它將使用私鑰加密。java中的加密 - 最佳實踐?
目前我有一個類的Cipher
類的靜態對象,我這樣初始化:myCipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
。
現在我的問題是:我有雙向通信,我應該爲每種方式(一個用於加密,一個用於解密)使用單獨的Cipher
對象並使用相同的初始化向量?或者我應該只使用相同的對象並根據我是加密還是解密來調用Cipher.init()
來更改模式?
在我腦海中有獨立的物體是有道理的,但我只是想確定。我試着用Google搜索,但大多數例子只顯示加密的一種方式。
當前我發送的初始化向量未加密的服務器,這是正確的,還是存在安全漏洞?
或者我完全錯誤地接近它?
謝謝。
爲什麼不使用SSL? – EJP 2011-05-17 01:58:49
它對我來說是一個學習練習,而不是一個生產練習。學習如何通過手動操作(以及如何工作)來更簡單地使用SSL來完成java的所有工作。 – Cheetah 2011-05-17 10:26:11