1.概念
- 明文:需要被加密的消息,一般是人直接可以閱讀理解的內容。(plaintext)
- 密文: 被加密后的消息,一般是人不可直接閱讀並理解的。(ciphertext)
- 加密:將明文轉換成密文的過程。(encryption)
- 解密:將密文恢復成明文的過程。(decryption)
- 加密算法: 對明文進行加密時所使用的算法。
- 解密算法:對密文進行解密時所使用的算法。
- 加密密鑰:encryption key.
- 解密密鑰 :decryption key.
2.常用加密解密算法
常見的加密算法分為對稱加密算法、非對稱加密算法和信息摘要算法。
- 對稱加密算法 :DES,3DES,AES
- 非對稱加密算法:RSA,DSA
- 信息摘要算法:MD5,SHA
3.java實現
java中對這幾種的類型的算法都有相應的實現,可以方便的直接調用。
具體可以參考java的幫助文檔Java ™ Cryptography Architecture (JCA) Reference Guide
下面對每一種類型的算法選擇一個實現進行舉例:
3.1 java實現AES加密
3.2 java實現RSA加密
3.3 java實現MD5加密
4. 總結
java 框架中對於加密體系的實現,對於日常的使用已經足夠了。如果有更高的安全需求,或者其他框架中沒有實現的算法,可以尋找一些開源的實現。如Bouncy Castle,提供了一系列算法的實現,並可以以provider的方式加入到JCA中,同時提供了關於BASE64和十六進制轉換的相關工具。