カスタム検索

2009年7月12日日曜日

Grailsで簡単暗号化! Grails Codecを使ってみよう!

Grailsで暗号化をするのは凄く簡単です。
公式ドキュメントにも乗っていますが、Objectに encodeAsBase64() というのが注入されています。
複合は decodeBase64() を使います。

なので hoge を暗号化すると、以下のコードになります。
  1. def key="hoge".encodeAsBase64() //暗号化  
  2. println key  
  3. println new String(key.decodeBase64()) //複合化  


decodeBase64() では byte配列が返ってくるので、new Stringしてやると文字列として読み取れる形式になります。

これをGroovyだけでやると以下のようになります。
  1. def bytes="hoge".getBytes()  
  2. def key=bytes.encodeBase64().toString()  
  3. println key  
  4. println new String(key.decodeBase64())  


ところで、GrailsにはencodeAsBase64()以外にも色々なCodec(encode,decode出来るもの)が用意されています。
(encodeAsHTML()などはscaffoldしたgspにかかれていますね)
更にCodecは自分で追加する事が出来ます。
grails-app/utilsフォルダへ HogeCodec.groovy というファイルを追加し、 encode、decodeというStaticメソッドを用意します。
(Codecファイルを作るスクリプトがあってもいいと思うのですが見当たりませんでした・・・)

  1. class HogeCodec {  
  2.   static encode = { theTarget ->  
  3.     return "hoge encode!!!"  
  4.   }  
  5.   
  6.   static decode = { theTarget ->  
  7.     return "hoge decode!!!"  
  8.   }  
  9. }  


これでObjectへ encodeAsHoge() と decodeHoge() が注入されます、簡単ですね!

0 件のコメント: