帶你詳細(xì)了解AES算法《附帶java、vue實現(xiàn)》 環(huán)球觀速訊
【資料圖】
不論前途如何,不管發(fā)生什么事情,我們都不失去希望,希望是一種美德?!队旯麄鳌?/p>
1.加密算法
在密碼學(xué)中,加密算法分為單向加密和雙向加密。單向加密包括MD5
、SHA
等摘要算法,它們是不可逆的。雙向加密包括對稱加密和非對稱加密。雙向加密是可逆的,存在密文的密鑰。對稱加密是指加密和解密使用相同的密鑰,包括AES
加密、DES
加密等。非對稱加密是指加密和解密使用不同的密鑰,包括RSA
加密等。2.AES介紹
是用來替代DES的新一代分組加密算法。AES支持三種長度的密鑰:128位、192位、256位。AES:高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard)是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn),是目前最流行的一種
對稱加密算法
。
3.AES的加密過程(AES處理單位:字節(jié))
AES
的加解密過程和DES
一樣,都是通過分組加密、分組解密。所謂分組加密,就是將待加解密的內(nèi)容按照128
位進(jìn)行分組,將密鑰按照128
位、192
位、256
位進(jìn)行分組,分別將分組后的明文與相應(yīng)分組后的密鑰進(jìn)行加解密。
加密: 明文與密鑰分組后,對每組:明文組與密鑰組處理 -> 輪密鑰加 -> 10輪加密 -> 密文組 解密: 對每組:密文組 -> 輪密鑰加 -> 10輪解密 -> 明文組
明文分組: 每組長度相等,都是128位(16字節(jié)); 密鑰分組: 有128位、192位、256位,推薦加密輪數(shù)分別為 10、12、14
密鑰組處理: 以密鑰分組每組128位為例(則推薦加密輪數(shù)為10,前9次執(zhí)行操作一樣,第十次有所不同) 類似地,128位密鑰也是用字節(jié)為單位的矩陣表示,通過密鑰編排函數(shù),形成具有44個元素的序列W[0],W[1], … ,W[43](每個元素4個字節(jié));其中,W[0],W[1],W[2],W[3]為原始密鑰,其余40個元素分為10組,每組4個元素(4*4=16字節(jié)),分別用于10輪加密。
AES加密算法涉及4種操作: 字節(jié)替代(SubBytes)
、行移位(ShiftRows)
、列混淆(MixColumns)
和輪密鑰加(AddRoundKey
)。下圖給出了AES加解密的流程:
4.代碼實現(xiàn)
1.生成密鑰
public static String genAesSecret(){ try { KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); //密鑰長度,單位:字節(jié),AES支持128、192、256字節(jié)長度的密鑰,上面文章已介紹 keyGenerator.init(128); SecretKey sk = keyGenerator.generateKey(); byte[] b = sk.getEncoded(); return Base64.encodeBase64String(b); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); throw new RuntimeException("沒有此算法"); } }
2.AES加密
public static String aesEncrypt(String content) throws Exception { //指定加密算法 Cipher cipher = Cipher.getInstance("AES"); //創(chuàng)建加密規(guī)則:指定key和加密類型 SecretKeySpec secretKeySpec = new SecretKeySpec(SECRET.getBytes(), "AES"); //指定加密模式為加密,指定加密規(guī)則 cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec); //調(diào)用加密方法 byte[] result = cipher.doFinal(content.getBytes()); //用Base64編碼 return new String(java.util.Base64.getEncoder().encode(result)); }
3.AES解密
public static String aesDecrypt(String content) throws Exception { //Base64解碼 byte[] result = java.util.Base64.getDecoder().decode(content); //指定加密算法 Cipher cipher = Cipher.getInstance("AES"); //創(chuàng)建加密規(guī)則:指定key和加密類型 SecretKeySpec secretKeySpec = new SecretKeySpec(SECRET.getBytes(), "AES"); //指定加密模式為解密,指定加密規(guī)則 cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); return new String(cipher.doFinal(result)); }
注意:SECRET.getBytes()
我這里是一個常量密鑰,通過密鑰生成后寫成常量SECRET
。
4.前端解密
安裝依賴
npm install crypto-js --save-dev
// 引入import CryptoJS from "crypto-js"?// 密鑰const AES_KEY = "P@S5W0rDK3yBACHU" // 后端提供?// 解密export function decrypt (word) { var key = CryptoJS.enc.Utf8.parse(AES_KEY) var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) return CryptoJS.enc.Utf8.stringify(decrypt).toString()}
5.Java測試用例
關(guān)鍵詞:
精心推薦
- 帶你詳細(xì)了解AES算法《附帶java、vue實現(xiàn)》 環(huán)球觀速訊
- 火龍果種下多久發(fā)芽_火龍果種子幾天發(fā)芽 當(dāng)前熱議
- 歐股收盤普漲_每日精選
- 術(shù)士魅魔任務(wù)流程_術(shù)士魅魔職業(yè)任務(wù)
- 何應(yīng)欽_說一說何應(yīng)欽的簡介
- 養(yǎng)鷓鴣要用什么籠_養(yǎng)鷓鴣
- 硅谷銀行倒閉帶來三大教訓(xùn) 科技創(chuàng)企還能信任銀行嗎?_世界消息
- 洋車夫的職業(yè)特點_洋車
- 汗顏無地的近義詞_汗顏的近義詞 環(huán)球微資訊
- 抽血需要空腹嗎需要多久_抽血需要空腹嗎-環(huán)球速遞
- 明日之子誰都別吝嗇超長_明日之子誰 新視野
- 柳梧高速路線圖_柳梧高速公路進(jìn)展如何 天天熱消息
- 硅谷銀行遭擠兌!用戶試圖提取 420 億美元!推特出手相救?馬斯克回應(yīng),浦發(fā)硅谷銀行公告:獨立經(jīng)營
- 全球觀速訊丨人造肉怎么做著吃_人造肉怎么做著吃
-
1、是安卓系統(tǒng)手機里的一個文件夾,里面有應(yīng)用軟件程序,不要刪!Android是一種基于Linux的自由及開放源代碼的操作
-
1、輸入gpedit msc打開本地編輯器。2、用戶配置,然后是管理模板,然后是windows組件。3、找到window
-
隊報:巴黎要在夏窗進(jìn)一步補強,準(zhǔn)備為奧斯梅恩報價1 5億歐,隊報,夏窗,巴黎,曼城,本菲卡隊,那不勒斯,德國足球,法國足球,足球競賽,足球運動員,
-
臺青社區(qū)融合公寓在廈門揭牌,兩岸共建家園增強臺青歸屬感
-
1、惠崇春江晚景蘇軾竹外桃花三兩枝,春江水暖鴨先知。2、蔞蒿滿地蘆芽短,正是河豚欲上時。3、 [注釋] 1.惠崇:宋
X 關(guān)閉
資訊
- 2021年國家開發(fā)銀行全年發(fā)放貸款5948億元支持鄉(xiāng)村振興
- 國家知識產(chǎn)權(quán)局出臺推動知識產(chǎn)權(quán)高質(zhì)量發(fā)展年度工作指引(2022)
- 中國六部門印發(fā)加強中央財政銜接推進(jìn)鄉(xiāng)村振興補助資金使用管理的指導(dǎo)意見
- 冷空氣將影響中東部地區(qū) 華北黃淮大氣擴散條件較差
- “水下洛神”何灝浩:《洛神水賦》是可以“吹”一輩子的作品
- IT專家成了中藥行家
- 江西省宜春經(jīng)濟技術(shù)開發(fā)區(qū)黨工委原副書記、管委會原主任鄧寄鵬嚴(yán)重違紀(jì)違法案剖析
- 單細(xì)胞測序 揭示家豬胸腰椎發(fā)育相關(guān)機制
行業(yè)
- 1、清華博士非洲修電站 因為他,“內(nèi)卷”成為網(wǎng)絡(luò)熱詞
- 2、內(nèi)蒙古新增本土確診病例3例 均在呼倫貝爾滿洲里市
- 3、31省份新增新冠肺炎確診病例67例 其中本土50例
- 4、浙江新增本土確診病例45例 其中寧波6例、紹興39例
- 5、廣東新增本土確診2例、本土無癥狀感染者2例
- 6、警惕非法集資的四種新“馬甲”
- 7、北京今天最高氣溫6℃ 新一輪冷空氣攜大風(fēng)降溫將至
- 8、網(wǎng)紅娃娃“戲入人生”別太早
- 9、那年今日 | 歷史上的12月15日發(fā)生過什么大事?
- 10、南昌市經(jīng)開區(qū)醫(yī)療器械公司廠房火災(zāi)已造成5死1傷
X 關(guān)閉
產(chǎn)業(yè)
-
不用跑北京 在家門口也能掛上頂...
日前,我省首個神經(jīng)疾病會診中心——首都醫(yī)科大學(xué)宣武醫(yī)院河北醫(yī)院...
-
“十四五”期間 河北省將優(yōu)化快...
從省郵政管理局獲悉,十四五期間,我省將優(yōu)化快遞空間布局,著力構(gòu)...
-
張家口市宣化區(qū):光伏發(fā)電站賦能...
3月19日拍攝的張家口市宣化區(qū)春光鄉(xiāng)曹莊子村光伏發(fā)電站。張家口市宣...
-
“張同學(xué)”商標(biāo)被多方搶注 涉及...
“張同學(xué)”商標(biāo)被多方搶注,官方曾點名批評惡意搶注“丁真” ...
-
山東濟南“防詐奶奶團”花式反詐...
中新網(wǎng)濟南12月15日電 (李明芮)“老有所為 無私奉獻(xiàn) 志愿服...
-
廣州新增1例境外輸入關(guān)聯(lián)無癥狀...
廣州衛(wèi)健委今日通報,2021年12月15日,在對入境轉(zhuǎn)運專班工作人...
-
西安報告初篩陽性病例轉(zhuǎn)為確診病例
12月15日10:20,經(jīng)陜西西安市級專家組會診,西安市報告新冠病毒...
-
廣東東莞新增本土確診病例2例 ...
(抗擊新冠肺炎)廣東東莞新增本土確診病例2例 全市全員核酸檢測...
-
中緬邊境臨滄:民警深夜出擊搗毀...
中新網(wǎng)臨滄12月15日電 (胡波 邱珺琿)記者15日從云南臨滄邊境...
-
“土家鼓王”彭承金:致力傳承土...
中新網(wǎng)恩施12月15日電 題:“土家鼓王”彭承金:致力傳承土家...