<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品爱网| 精品国产福利在线观看91啪 | 久久久国产精品va麻豆| 国产精品无码日韩欧| 在线观看免费精品国产| 久久精品人人槡人妻人人玩AV | 亚洲国产成人综合精品| 日本人精品video黑人| 四虎影视永久在线精品| 伊人无码精品久久一区二区| 久久国产精品系列| 不卡精品国产_亚洲人成在线| 精品久久久无码人妻字幂| 91麻豆精品一二三区在线| 国产精品186在线观看在线播放| 尤物TV国产精品看片在线| 色欲AV永久无码精品无码| 91成人精品视频| 亚洲AV无码成人精品区在线观看| 九九在线观看精品视频6| 青青青国产精品手机在线观看| 国产成人精品男人的天堂538| 久久精品国产999大香线焦| 精品久久久久久无码免费| 国产午夜久久精品| 国产精品玖玖玖在线资源| 99精品国产丝袜在线拍国语| 午夜精品美女写真福利| 国产精品熟女高潮视频| 国内精品视频在线观看| 亚洲AV成人精品日韩一区18p| 在线观看91精品国产不卡免费| 国产精品亚洲综合五月天| 久久亚洲精品无码VA大香大香| 久久九九久精品国产日韩经典| 最新精品露脸国产在线| 成人区人妻精品一区二区不卡视频| 亚洲精品国产V片在线观看| 免费人妻精品一区二区三区| 国产精品96久久久久久久| 国产色婷婷精品免费视频|