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