亚洲精品国产精品乱码视色,下载应用成人电影AVapp,成人影院下载视频

      <track id="gfhue"><i id="gfhue"></i></track><input id="gfhue"></input>

      1. 更多精彩內容,歡迎關注:

        視頻號
        視頻號

        抖音
        抖音

        快手
        快手

        微博
        微博

        java aes加密

        文檔

        java aes加密

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

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

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

        JAVA是如何實現(xiàn)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?待處理數(shù)據(jù)
        ?????*?@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算法,不區(qū)分大小寫
        ????????????KeyGenerator?kgen?=?KeyGenerator.getInstance(KEY_AES);
        ????????????//2.根據(jù)ecnodeRules規(guī)則初始化密鑰生成器
        ????????????//生成一個128位的隨機源,根據(jù)傳入的字節(jié)數(shù)組
        ????????????kgen.init(128,?new?SecureRandom(key.getBytes()));
        ????????????//3.產(chǎn)生原始對稱密鑰
        ????????????SecretKey?secretKey?=?kgen.generateKey();
        ????????????//4.獲得原始對稱密鑰的字節(jié)數(shù)組
        ????????????byte[]?enCodeFormat?=?secretKey.getEncoded();
        ????????????//5.根據(jù)字節(jié)數(shù)組生成AES密鑰
        ????????????SecretKeySpec?keySpec?=?new?SecretKeySpec(enCodeFormat,?KEY_AES);
        ????????????//6.根據(jù)指定算法AES自成密碼器
        ????????????Cipher?cipher?=?Cipher.getInstance(KEY_AES);//?創(chuàng)建密碼器
        ????????????//7.初始化密碼器,第一個參數(shù)為加密(Encrypt_mode)或者解密解密(Decrypt_mode)操作,第二個參數(shù)為使用的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);//?創(chuàng)建密碼器
        ????????????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位分組加密數(shù)據(jù),提供比WEP/TKIPS的RC4算法更高的加密強度。AES具有應用范圍廣、等待時間短、相對容易隱藏、吞吐量高等優(yōu)點。
        推薦度:
        為你推薦
        資訊專欄
        熱門視頻
        相關推薦
        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的區(qū)別 熊貓只有中國才有的嗎 idea新建一個java項目 java 32bit java -xms idea新建java項目 祁連山在哪個省境內 行程碼帶*號什么意思 南極洲有哪些國家 java -ea
        Top