<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java aes加密

    文檔

    java aes加密

    java aes加密是一種對稱的分組加密技術,使用128位分組加密數據,提供比WEP/TKIPS的RC4算法更高的加密強度。AES具有應用范圍廣、等待時間短、相對容易隱藏、吞吐量高等優點。
    推薦度:
    導讀java aes加密是一種對稱的分組加密技術,使用128位分組加密數據,提供比WEP/TKIPS的RC4算法更高的加密強度。AES具有應用范圍廣、等待時間短、相對容易隱藏、吞吐量高等優點。

    java aes加密是什么,讓我們一起了解一下?

    java aes加密是一種對稱的分組加密技術,使用128位分組加密數據,提供比WEP/TKIPS的RC4算法更高的加密強度。AES具有應用范圍廣、等待時間短、相對容易隱藏、吞吐量高等優點。

    JAVA是如何實現AES加密的?(兩種方法)

    方法一:

    /**
    ?*AES加密解密工具類
    ?*@author?M-Y
    ?*/
    public?class?AESUtil?{
    ??????private?static?final?Logger?logger?=?Logger.getLogger(AESUtil.class);
    ??????private?static?final?String?defaultCharset?=?"UTF-8";
    ??????private?static?final?String?KEY_AES?=?"AES";
    ??????private?static?final?String?KEY?=?"123456";
    ????/**
    ?????*?加密
    ?????*
    ?????*?@param?data?需要加密的內容
    ?????*?@param?key?加密密碼
    ?????*?@return
    ?????*/
    ????public?static?String?encrypt(String?data,?String?key)?{
    ????????return?doAES(data,?key,?Cipher.ENCRYPT_MODE);
    ????}
    ?
    ????/**
    ?????*?解密
    ?????*
    ?????*?@param?data?待解密內容
    ?????*?@param?key?解密密鑰
    ?????*?@return
    ?????*/
    ????public?static?String?decrypt(String?data,?String?key)?{
    ????????return?doAES(data,?key,?Cipher.DECRYPT_MODE);
    ????}
    ?
    ????/**
    ?????*?加解密
    ?????*
    ?????*?@param?data?待處理數據
    ?????*?@param?password??密鑰
    ?????*?@param?mode?加解密mode
    ?????*?@return
    ?????*/
    ????private?static?String?doAES(String?data,?String?key,?int?mode)?{
    ????????try?{
    ????????????if?(StringUtils.isBlank(data)?||?StringUtils.isBlank(key))?{
    ????????????????return?null;
    ????????????}
    ????????????//判斷是加密還是解密
    ????????????boolean?encrypt?=?mode?==?Cipher.ENCRYPT_MODE;
    ????????????byte[]?content;
    ????????????//true?加密內容?false?解密內容
    ????????????if?(encrypt)?{
    ????????????????content?=?data.getBytes(defaultCharset);
    ????????????}?else?{
    ????????????????content?=?parseHexStr2Byte(data);
    ????????????}
    ????????????//1.構造密鑰生成器,指定為AES算法,不區分大小寫
    ????????????KeyGenerator?kgen?=?KeyGenerator.getInstance(KEY_AES);
    ????????????//2.根據ecnodeRules規則初始化密鑰生成器
    ????????????//生成一個128位的隨機源,根據傳入的字節數組
    ????????????kgen.init(128,?new?SecureRandom(key.getBytes()));
    ????????????//3.產生原始對稱密鑰
    ????????????SecretKey?secretKey?=?kgen.generateKey();
    ????????????//4.獲得原始對稱密鑰的字節數組
    ????????????byte[]?enCodeFormat?=?secretKey.getEncoded();
    ????????????//5.根據字節數組生成AES密鑰
    ????????????SecretKeySpec?keySpec?=?new?SecretKeySpec(enCodeFormat,?KEY_AES);
    ????????????//6.根據指定算法AES自成密碼器
    ????????????Cipher?cipher?=?Cipher.getInstance(KEY_AES);//?創建密碼器
    ????????????//7.初始化密碼器,第一個參數為加密(Encrypt_mode)或者解密解密(Decrypt_mode)操作,第二個參數為使用的KEY
    ????????????cipher.init(mode,?keySpec);//?初始化
    ????????????byte[]?result?=?cipher.doFinal(content);
    ????????????if?(encrypt)?{
    ????????????????//將二進制轉換成16進制
    ????????????????return?parseByte2HexStr(result);
    ????????????}?else?{
    ????????????????return?new?String(result,?defaultCharset);
    ????????????}
    ????????}?catch?(Exception?e)?{
    ????????????logger.error("AES?密文處理異常",?e);
    ????????}
    ????????return?null;
    ????}
    ????/**
    ?????*?將二進制轉換成16進制
    ?????*
    ?????*?@param?buf
    ?????*?@return
    ?????*/
    ????public?static?String?parseByte2HexStr(byte?buf[])?{
    ????????StringBuilder?sb?=?new?StringBuilder();
    ????????for?(int?i?=?0;?i?

    輸出結果:

    加密前:{'repairPhone':'18547854787','customPhone':'12365478965','captchav':'58m7'}
    加密密鑰和解密密鑰:123456
    加密后:2A3D75862E69BF61DFAD94017E930227A715C8E533AA1A12361D6BE6E190EC5EE77AA66CAC8005A643BFB26134EE60398C30104B1F7FB3CC6B78795368A86D8215B88A5C80D9C2E4936EEEB0DECA7A88
    解密后:{'repairPhone':'18547854787','customPhone':'12365478965','captchav':'58m7'}

    方法二:替換AESUtil 類中的doAES方法并加上以下成員。

    private?static?final?String?KEY_MD5?=?"MD5";
    ????private?static?MessageDigest?md5Digest;
    ?
    ????static?{
    ????????try?{
    ????????????md5Digest?=?MessageDigest.getInstance(KEY_MD5);
    ????????}?catch?(NoSuchAlgorithmException?e)?{
    ????????????//
    ????????}
    ????}
    doAES方法:
    /**
    ?????*?加解密
    ?????*
    ?????*?@param?data
    ?????*?@param?key
    ?????*?@param?mode
    ?????*?@return
    ?????*/
    ????private?static?String?doAES(String?data,?String?key,?int?mode)?{
    ????????try?{
    ????????????if?(StringUtils.isBlank(data)?||?StringUtils.isBlank(key))?{
    ????????????????return?null;
    ????????????}
    ????????????boolean?encrypt?=?mode?==?Cipher.ENCRYPT_MODE;
    ????????????byte[]?content;
    ????????????//true?加密內容?false?解密內容
    ????????????if?(encrypt)?{
    ????????????????content?=?data.getBytes(defaultCharset);
    ????????????}?else?{
    ?????????????????content?=?parseHexStr2Byte(data);
    ????????????}
    ????????????SecretKeySpec?keySpec?=?new?SecretKeySpec(md5Digest.digest(key.getBytes(defaultCharset)),?KEY_AES);//構造一個密鑰
    ????????????Cipher?cipher?=?Cipher.getInstance(KEY_AES);//?創建密碼器
    ????????????cipher.init(mode,?keySpec);//?初始化
    ????????????byte[]?result?=?cipher.doFinal(content);//加密或解密
    ????????????if?(encrypt)?{
    ????????????????return?parseByte2HexStr(result);
    ????????????}?else?{
    ????????????????return?new?String(result,?defaultCharset);
    ????????????}
    ????????}?catch?(Exception?e)?{
    ????????????logger.error("AES?密文處理異常",?e);
    ????????}
    ????????return?null;
    ????}

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    java aes加密

    java aes加密是一種對稱的分組加密技術,使用128位分組加密數據,提供比WEP/TKIPS的RC4算法更高的加密強度。AES具有應用范圍廣、等待時間短、相對容易隱藏、吞吐量高等優點。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java aggregation java akka ipad2是哪年的 java algorithm iphone呼叫失敗是什么原因 java android java annotation java ant java apns 蘋果13藍牙搜索不到設備怎么辦 java append java application java apriori java archive java arcsin java arccos java arctan java args java arrays.sort java ascii java advice java addall java add java actuator 西北五省是哪五省 java activity java activiti 甕安縣屬于哪個市 java active 茉莉花茶是綠茶嗎 java a++和++a的區別 熊貓只有中國才有的嗎 idea新建一個java項目 java 32bit java -xms idea新建java項目 祁連山在哪個省境內 行程碼帶*號什么意思 南極洲有哪些國家 java -ea
    Top 国产成人精品无码专区| 久久久久国产精品熟女影院| 无码国内精品久久综合88| 一本大道无码日韩精品影视| 亚洲国产精品xo在线观看| 精品久久久久中文字幕一区| 精品国产第一国产综合精品| 国产系列高清精品第一页| 最新国语自产精品视频在| 亚洲国产综合精品一区在线播放| 2021国内精品久久久久影院| 亚洲国产精品成人久久蜜臀 | 国产在线精品免费aaa片| 国产成人无码久久久精品一 | 日韩精品一二三四区| 精品国产sm捆绑最大网免费站| 国内大量偷窥精品视频| 国产在线精品99一卡2卡| 精品一区二区三区四区在线播放| 国产日韩精品中文字无码| 婷婷国产成人精品一区二| 欧美日韩精品一区二区在线视频| 日产精品一线二线三线芒果| 91精品国产91久久综合| 精品福利视频第一| 国产精品无码亚洲精品2021| 亚洲精品美女在线观看播放| 亚洲精品乱码久久久久久自慰| 四虎永久在线精品免费一区二区| 亚洲国产成人精品无码区花野真一| 午夜成人精品福利网站在线观看| 中文精品一区二区三区四区| 中文字幕亚洲精品| 久热精品视频在线观看99小说| 久久99精品久久久久久齐齐 | 亚洲国产精品狼友中文久久久| 亚洲AV无码精品国产成人| 日本阿v精品视频在线观看| 久久精品国产这里是免费| 最新国产精品精品视频| 国产午夜亚洲精品国产成人小说 |