<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 欧洲精品码一区二区三区| 亚洲AV无码精品色午夜果冻不卡 | 国产精品小视频免费无限app| 99re最新这里只有精品| 2019国产精品| 亚洲精品天堂成人片?V在线播放| 久久精品国产亚洲AV无码偷窥| 996久久国产精品线观看| 亚洲精品无码aⅴ中文字幕蜜桃| 久久久久久久久久国产精品免费| 人妻少妇精品无码专区漫画| 久久国产亚洲精品无码| 国产精品禁18久久久夂久| 久久久WWW成人免费精品| 国产福利专区精品视频| 精品一区二区三区| 久久久国产亚洲精品| 55夜色66夜色国产精品| 无码国内精品人妻少妇蜜桃视频 | 精品亚洲国产成AV人片传媒| 精品一区二区三区在线播放 | 99热在线观看精品| 亚洲国产另类久久久精品| 中文字幕精品一区| 91精品国产91久久综合| 亚洲一区精品伊人久久伊人| 国产精品久久久久影视青草| 182tv午夜精品视频在线播放| 久久99精品久久| 久久精品7亚洲午夜a| 国产精品99久久99久久久| 国产精品无码一区二区三区电影| 久久一区二区精品| 久久人人做人人玩人精品| 思思久久好好热精品国产| 亚洲国产美女精品久久久久∴| www.精品视频| 动漫精品专区一区二区三区不卡| 国产精品午夜无码体验区| 国产精品老女人精品视| 国产精品亚洲一区二区三区久久 |