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/ )交流分享。
沒有留言:
張貼留言