DES加密解密工具是一個工具類,很常用,不做深入研究了,拿來可直接用。
DES加密解密介紹
DES是對稱性加密里面常見一種,全稱為Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法。密鑰長度是64位(bit),超過位數密鑰被忽略。所謂對稱性加密,加密和解密密鑰相同。對稱性加密一般會按照固定長度,把待加密字符串分成塊。不足一整塊或者剛好最后有特殊填充字符。往往跨語言做DES加密解密,經常會出現問題。往往是填充方式不對、或者編碼不一致、或者選擇加密解密模式(ECB,CBC,CTR,OFB,CFB,NCFB,NOFB)沒有對應上造成。常見的填充模式有: 'pkcs5','pkcs7','iso10126','ansix923','zero' 類型,包括DES-ECB,DES-CBC,DES-CTR,DES-OFB,DES-CFB。
DES加密介紹
DES是一種對稱加密算法,所謂對稱加密算法即:加密和解密使用相同密鑰的算法。DES加密算法出自IBM的研究,后來被美國政府正式采用,之后開始廣泛流傳,但是近些年使用越來越少,因為DES使用56位密鑰,以現代計算能力,24小時內即可被破解。雖然如此,在某些簡單應用中,我們還是可以使用DES加密算法。注意:DES加密和解密過程中,密鑰長度都必須是8的倍數
Des 加密相關類介紹
SecureRandom 這個類是繼承自java.util.Random 這個類
SecureRandom 這個類的構造器有三種,下面例舉兩種:
SecureRandom()構造一個實現默認隨機數算法的安全隨機數生成器 (RNG)。
SecureRandom(byte[] seed)構造一個實現默認隨機數算法的安全隨機數生成器 (RNG)。
DESKeySpec 這個類是用來使用原始秘鑰來生成秘鑰的秘鑰內容
DESKeySpec 有兩個構造函數:
DESKeySpec(byte[] key) 創建一個 DESKeySpec 對象,使用 key 中的前 8 個字節作為 DES 密鑰的密鑰內容。
DESKeySpec(byte[] key, int offset) 創建一個 DESKeySpec 對象,使用 key 中始于且包含 offset 的前 8 個字節作為 DES-EDE 密鑰的密鑰內容。
SecretKeyFactory , 密鑰工廠用來將密鑰(類型 Key 的不透明加密密鑰)轉換為密鑰規范(底層密鑰材料的透明表示形式),反之亦然。秘密密鑰工廠只對秘密(對稱)密鑰進行操作。
SecretKey對象,秘鑰對象,通過調用秘鑰工廠的generateSecret(DESKeySpec deskeyspace) 方法來生成秘鑰
Cipher 類為加密和解密提供密碼功能,通過調用Cipher的getInstance("des") 來獲取實例
Cipher 對象調用init() 方法進行對象的初始化,init() 方法的具體參數按照具體情況而定,有加密的也有解密的常量
最后調用Cipher的doFinal() 方法進行加密解密。
- PC官方版
- 安卓官方手機版
- IOS官方手機版