<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></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 国产精品青青青高清在线观看| 久9这里精品免费视频| 亚洲色精品VR一区区三区| 国产精品成人国产乱| 久久精品黄AA片一区二区三区| 精品欧洲男同同志videos| 国模精品一区二区三区| 国产馆精品推荐在线观看| 人妖在线精品一区二区三区| 国产精品视频一区二区噜噜 | 亚洲综合精品一二三区在线| 亚洲AV无码之日韩精品| 精品国产电影久久九九| 精品国产午夜理论片不卡| 久久久久久国产精品免费免费男同 | 国产成人精品一区二区秒拍 | 国产精品成人免费视频网站京东 | 久久精品国产99国产| 国产精品内射久久久久欢欢| 无码国产精品一区二区免费vr| 久久免费国产精品| 亚洲国产精品成人网址天堂| 国产精品福利午夜在线观看| 久久久精品久久久久影院| 久久精品国产99国产精品澳门| 精品乱码久久久久久夜夜嗨 | 国产拍揄自揄精品视频| 亚洲精品尤物yw在线影院| 午夜国产精品久久影院| 女同久久另类99精品国产| 日本内射精品一区二区视频| 久久99精品国产99久久6男男| 热久久综合这里只有精品电影| 亚洲精品无码aⅴ中文字幕蜜桃| 国农村精品国产自线拍| 国产在线精品一区二区三区不卡| 亚洲?V无码乱码国产精品| 国产精品电影在线| 国产精品部在线观看| 久久精品夜色噜噜亚洲A∨| 久久久亚洲精品蜜桃臀|