AES文件內(nèi)容加解密工具類(lèi)

package com.thinkgem.jeesite.modules.emindsoft.util;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class AesEncodeUtil {

//初始向量  
public static final String VIPARA = "aabbccddeeffgghh";   //AES 為16bytes. DES 為8bytes  
  
//編碼方式  
public static final String bm = "UTF-8";  
  
//私鑰  
private static final String ASE_KEY="aabbccddeeffgghh";   //AES固定格式為128/192/256 bits.即:16/24/32bytes卤唉。DES固定格式為128bits,即8bytes仁期。  
  
/** 
 * 加密 
 *  
 * @param cleartext 
 * @return 
 */  
public static String encrypt(String cleartext) {  
    //加密方式: AES128(CBC/PKCS5Padding) + Base64, 私鑰:aabbccddeeffgghh  
    try {  
        IvParameterSpec zeroIv = new IvParameterSpec(VIPARA.getBytes());  
        //兩個(gè)參數(shù)桑驱,第一個(gè)為私鑰字節(jié)數(shù)組, 第二個(gè)為加密方式 AES或者DES  
        SecretKeySpec key = new SecretKeySpec(ASE_KEY.getBytes(), "AES");  
        //實(shí)例化加密類(lèi)跛蛋,參數(shù)為加密方式熬的,要寫(xiě)全  
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); //PKCS5Padding比PKCS7Padding效率高,PKCS7Padding可支持IOS加解密  
         //初始化赊级,此方法可以采用三種方式押框,按加密算法要求來(lái)添加。(1)無(wú)第三個(gè)參數(shù)(2)第三個(gè)參數(shù)為SecureRandom random = new SecureRandom();中random對(duì)象理逊,隨機(jī)數(shù)橡伞。(AES不可采用這種方法)(3)采用此代碼中的IVParameterSpec  
        cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv);  
        //加密操作,返回加密后的字節(jié)數(shù)組,然后需要編碼晋被。主要編解碼方式有Base64, HEX, UUE,7bit等等兑徘。此處看服務(wù)器需要什么編碼方式  
        byte[] encryptedData = cipher.doFinal(cleartext.getBytes(bm));  

        return new BASE64Encoder().encode(encryptedData);  
    } catch (Exception e) {  
        e.printStackTrace();  
        return "";   
    }  
}  

/** 
 * 解密 
 *  
 * @param encrypted 
 * @return 
 */  
public static String decrypt(String encrypted) {  
    try {  
        byte[] byteMi = new BASE64Decoder().decodeBuffer(encrypted);  
        IvParameterSpec zeroIv = new IvParameterSpec(VIPARA.getBytes());  
        SecretKeySpec key = new SecretKeySpec(  
                ASE_KEY.getBytes(), "AES");  
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");  
        //與加密時(shí)不同MODE:Cipher.DECRYPT_MODE  
        cipher.init(Cipher.DECRYPT_MODE, key, zeroIv);  
        byte[] decryptedData = cipher.doFinal(byteMi);  
        return new String(decryptedData, bm);  
    } catch (Exception e) {  
        e.printStackTrace();  
        return "";  
    }  
}  

/** 
 * 測(cè)試 
 *  
 * @param args 
 * @throws Exception 
 */  
public static void main(String[] args) throws Exception {  


    String content = "98.5674{“”:\"nishi\",\"我——-!@#¥%……&*$\":\"\"}";  
    // 加密  
    System.out.println("加密前:" + content);  
    String encryptResult = encrypt(content);  
      
    System.out.println("加密后:" + new String(encryptResult));  
    // 解密  
    String decryptResult = decrypt(encryptResult);  
    System.out.println("解密后:" + new String(decryptResult));  


}  

}
網(wǎng)盤(pán)/工作/總結(jié)////

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末羡洛,一起剝皮案震驚了整個(gè)濱河市挂脑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌欲侮,老刑警劉巖崭闲,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異威蕉,居然都是意外死亡刁俭,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)忘伞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)薄翅,“玉大人,你說(shuō)我怎么就攤上這事氓奈。” “怎么了鼎天?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵舀奶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我斋射,道長(zhǎng)育勺,這世上最難降的妖魔是什么但荤? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮涧至,結(jié)果婚禮上腹躁,老公的妹妹穿的比我還像新娘。我一直安慰自己南蓬,他們只是感情好纺非,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著赘方,像睡著了一般烧颖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窄陡,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天炕淮,我揣著相機(jī)與錄音,去河邊找鬼跳夭。 笑死涂圆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的币叹。 我是一名探鬼主播润歉,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼套硼!你這毒婦竟也來(lái)了卡辰?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤邪意,失蹤者是張志新(化名)和其女友劉穎九妈,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體雾鬼,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡萌朱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了策菜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晶疼。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖又憨,靈堂內(nèi)的尸體忽然破棺而出翠霍,到底是詐尸還是另有隱情,我是刑警寧澤蠢莺,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布寒匙,位于F島的核電站,受9級(jí)特大地震影響躏将,放射性物質(zhì)發(fā)生泄漏锄弱。R本人自食惡果不足惜考蕾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望会宪。 院中可真熱鬧肖卧,春花似錦、人聲如沸掸鹅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)河劝。三九已至壁榕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赎瞎,已是汗流浹背牌里。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留务甥,地道東北人牡辽。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像敞临,于是被迫代替她去往敵國(guó)和親态辛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光劍書(shū)架上的書(shū)閱讀 3,865評(píng)論 2 8
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理挺尿,服務(wù)發(fā)現(xiàn)奏黑,斷路器,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法编矾,類(lèi)相關(guān)的語(yǔ)法熟史,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法窄俏,異常的語(yǔ)法蹂匹,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,598評(píng)論 18 399
  • iOS仰坦、后臺(tái)履植、Android 三個(gè)一致的加密工具 ---------DES加密 首先是JAVA端的加密工具類(lèi),它同...
    默著閱讀 2,182評(píng)論 3 2
  • 談一頓飯的戀愛(ài) 訴兩盞茶的情話 持三世緣的執(zhí)念 許四海家的諾言 ???
    米未閱讀 292評(píng)論 2 3