2013年1月15日

使用 AES 演算法加密字串,以 Groovy / Java 快速實作


Java 內建 AES 演算法的 API,所以在 Groovy 程式中,實際不到十行程式碼,就能完成加密或解密字串的處理。

為了把加密結果轉成十六進位,我們使用 commons-codec 提供的 HEX 物件。當然在 Groovy 只要使用 Grab / Grapes 就可以輕易自動載入需要的函式庫檔案。

    @Grab('commons-codec:commons-codec:1.7')
   
    import javax.crypto.*
    import javax.crypto.spec.*
    import org.apache.commons.codec.binary.*
   
    String text = "I Love Taiwan"
   
    //設定金鑰與演算法
    def key = new SecretKeySpec("0123456789012345".bytes, "AES")
    def c = Cipher.getInstance("AES")
   
    //加密
    c.init(Cipher.ENCRYPT_MODE, key)
    e_text = new String(Hex.encodeHex(c.doFinal(text.getBytes("UTF-8"))))
   
    //解密
    c.init(Cipher.DECRYPT_MODE, key)
    text = new String(c.doFinal(Hex.decodeHex(e_text.toCharArray())))

@作者 lyhcode 有多年 Groovy 及 Grails 開發經驗,歡迎到 Groovy Taiwan( http://facebook.com/groovy.taiwan/ )交流分享。

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!