資源描述:
《java加密解密》由會員上傳分享,免費在線閱讀,更多相關內容在學術論文-天天文庫。
1、Java加密技術(一)文章分類:Java編程???加密解密,曾經是我一個畢業(yè)設計的重要組件。在工作了多年以后回想當時那個加密、解密算法,實在是太單純了。???言歸正傳,這里我們主要描述Java已經實現(xiàn)的一些加密解密算法,最后介紹數字證書。???如基本的單向加密算法:·BASE64嚴格地說,屬于編碼格式,而非加密算法·MD5(MessageDigestalgorithm5,信息摘要算法)·SHA(SecureHashAlgorithm,安全散列算法)·HMAC(HashMessageAuthentication
2、Code,散列消息鑒別碼)???復雜的對稱加密(DES、PBE)、非對稱加密算法:·DES(DataEncryptionStandard,數據加密算法)·PBE(Password-basedencryption,基于密碼驗證)·RSA(算法的名字以發(fā)明者的名字命名:RonRivest,AdiShamir和LeonardAdleman)·DH(Diffie-Hellman算法,密鑰一致協(xié)議)·DSA(DigitalSignatureAlgorithm,數字簽名)·ECC(EllipticCurvesCrypto
3、graphy,橢圓曲線密碼編碼學)???本篇內容簡要介紹BASE64、MD5、SHA、HMAC幾種方法。???MD5、SHA、HMAC這三種加密算法,可謂是非可逆加密,就是不可解密的加密方法。我們通常只把他們作為加密的基礎。單純的以上三種的加密并不可靠。BASE64按照RFC2045的定義,Base64被定義為:Base64內容傳送編碼被設計用來把任意序列的8位字節(jié)描述為一種不易被人直接識別的形式。(TheBase64Content-Transfer-Encodingisdesignedtorepresent
4、arbitrarysequencesofoctetsinaformthatneednotbehumanlyreadable.)常見于郵件、http加密,截取http信息,你就會發(fā)現(xiàn)登錄操作的用戶名、密碼字段通過BASE64加密的。通過java代碼實現(xiàn)如下:Java代碼1./**?2.?*?BASE64解密?3.?*??4.?*?@param?key?5.?*?@return?6.?*?@throws?Exception?7.?*/??8.public?static?byte[]?decryptBASE64(S
5、tring?key)?throws?Exception?{??9.????return?(new?BASE64Decoder()).decodeBuffer(key);??10.}??11.??12./**?13.?*?BASE64加密?14.?*??15.?*?@param?key?16.?*?@return?17.?*?@throws?Exception?18.?*/??19.public?static?String?encryptBASE64(byte[]?key)?throws?Exception?{
6、??20.????return?(new?BASE64Encoder()).encodeBuffer(key);??1.}??/***BASE64解密**@paramkey*@return*@throwsException*/publicstaticbyte[]decryptBASE64(Stringkey)throwsException{return(newBASE64Decoder()).decodeBuffer(key);}/***BASE64加密**@paramkey*@return*@throwsE
7、xception*/publicstaticStringencryptBASE64(byte[]key)throwsException{return(newBASE64Encoder()).encodeBuffer(key);}主要就是BASE64Encoder、BASE64Decoder兩個類,我們只需要知道使用對應的方法即可。另,BASE加密后產生的字節(jié)位數是8的倍數,如果不夠位數以=符號填充。MD5MD5--message-digestalgorithm5(信息-摘要算法)縮寫,廣泛用于加密和解密技術,
8、常用于文件校驗。校驗?不管文件多大,經過MD5后都能生成唯一的MD5值。好比現(xiàn)在的ISO校驗,都是MD5校驗。怎么用?當然是把ISO經過MD5后產生MD5的值。一般下載linux-ISO的朋友都見過下載鏈接旁邊放著MD5的串。就是用來驗證文件是否一致的。通過java代碼實現(xiàn)如下:Java代碼1./**?2.?*?MD5加密?3.?*??4.?*?@param?data?5.?*?@return?6.