非对称密码体制
非對稱密碼:加密密鑰和解密密鑰不相同,一個公開,一個保密。公開的稱為公鑰,保密稱為私鑰
? ? ? ? 在非對稱密碼體制中,公鑰和私鑰都可以用于加密與解密操作,公鑰加密則需要私鑰解密,私鑰加密則需要公鑰解密。非對稱密碼體制的主要優點是可以適應開放性的使用環境,可以方便安全的實現數字簽名和驗證。除此之外,非對稱密碼體制還支持數字信封等技術。
?
DH:第一個密鑰協商算法,使雙方可以在安全的條件下交換密鑰,僅用于秘鑰分配不能加密或解密消息。
重點:乙方使用甲方公鑰作為參數,否則無法保證甲乙雙方獲得同一個秘密密鑰。
RSA:最典型的非對稱?加密算法,既可用于數據加解密也可用于數字簽名。
ECC:橢圓曲線加密算法,通過橢圓曲線方程式的性質產生密鑰,創建密鑰時更快更小更有效。
?
X509EncodedKeySpec和PKCS8EncodedKeySpec兩個類在加密解密環節中經常會用到。密鑰很可能會以二進制方式存儲于文件中,由程序來讀取。這時候,就需要通過這兩個類將文件中的字節數組讀出轉換為密鑰對象。
// 取得私鑰PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);Key privateKey = keyFactory.generatePrivate(pkcs8KeySpec);// 取得公鑰// 構造X509EncodedKeySpec對象X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);// KEY_ALGORITHM 指定的加密算法KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);// 取公鑰匙對象PublicKey pubKey = keyFactory.generatePublic(keySpec);?簡要總結一下,使用公鑰加密、私鑰解密,完成了乙方到甲方的一次數據傳遞,通過私鑰加密、公鑰解密,同時通過私鑰簽名、公鑰驗證簽名,完成了一次甲方到乙方的數據傳遞與驗證,兩次數據傳遞完成一整套的數據交互
總結
- 上一篇: python 输入一个月份判断季节
- 下一篇: 利用计算机控制数控机床,计算机辅助在《数