資源描述:
《JAVA實(shí)現(xiàn)AES加密算法代碼.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、JAVA實(shí)現(xiàn)AES加密算法代碼近些年DES使用越來越少,原因就在于其使用56位密鑰,比較容易被破解,近些年來逐漸被AES替代,AES已經(jīng)變成目前對稱加密中最流行算法之一;AES可以使用128、192、和256位密鑰,并且用128位分組加密和解密數(shù)據(jù)。本文就簡單介紹如何通過JAVA實(shí)現(xiàn)AES加密?! ?.JAVA實(shí)現(xiàn) 閑話少許,掠過AES加密原理及算法,關(guān)于這些直接搜索專業(yè)網(wǎng)站吧,我們直接看JAVA的具體實(shí)現(xiàn)?! ?.1加密 代碼有詳細(xì)解釋,不多廢話?! ?** *加密 * *@paramcontent需要加密的內(nèi)容 *@parampas
2、sword加密密碼 *@return */ publicstaticbyte[]encrypt(Stringcontent,Stringpassword){ try{ KeyGeneratorkgen=KeyGenerator.getInstance("AES"); kgen.init(128,newSecureRandom(password.getBytes())); SecretKeysecretKey=kgen.generateKey(); byte[]enCodeFormat=secretKey.getEncoded();
3、 SecretKeySpeckey=newSecretKeySpec(enCodeFormat,"AES"); Ciphercipher=Cipher.getInstance("AES");//創(chuàng)建密碼器 byte[]byteContent=content.getBytes("utf-8"); cipher.init(Cipher.ENCRYPT_MODE,key);//初始化 byte[]result=cipher.doFinal(byteContent); returnresult;//加密 }catch(NoSuchAlgorit
4、hmExceptione){ e.printStackTrace(); }catch(NoSuchPaddingExceptione){ e.printStackTrace(); }catch(InvalidKeyExceptione){ e.printStackTrace(); }catch(UnsupportedEncodingExceptione){ e.printStackTrace(); }catch(IllegalBlockSizeExceptione){ e.printStackTrace(); }catch(Ba
5、dPaddingExceptione){ e.printStackTrace(); } returnnull; } /** *加密 * *@paramcontent需要加密的內(nèi)容 *@parampassword加密密碼 *@return */ publicstaticbyte[]encrypt(Stringcontent,Stringpassword){ try{ KeyGeneratorkgen=KeyGenerator.getInstance("AES"); kgen.init(128,newSecureRando
6、m(password.getBytes())); SecretKeysecretKey=kgen.generateKey(); byte[]enCodeFormat=secretKey.getEncoded(); SecretKeySpeckey=newSecretKeySpec(enCodeFormat,"AES"); Ciphercipher=Cipher.getInstance("AES");//創(chuàng)建密碼器 byte[]byteContent=content.getBytes("utf-8"); cipher.init(Ciphe
7、r.ENCRYPT_MODE,key);//初始化 byte[]result=cipher.doFinal(byteContent); returnresult;//加密 }catch(NoSuchAlgorithmExceptione){ e.printStackTrace(); }catch(NoSuchPaddingExceptione){ e.printStackTrace(); }catch(InvalidKeyExceptione){ e.printStackTrace(); }catch(UnsupportedEnc
8、odingExceptione){ e.printStackTrace(); }catch(IllegalBlockS