Web アプリケーションの開発では、Base64 エンコード/デコードを息をするように使うので(ホント?)、Java 8から導入されたという Java 標準の Base64 クラスを使ってみた。
さっき、「試しに JSF の新規プロジェクトを作成してみた」というエントリーで作ったプロジェクトを改造。
1.helloBean.java
・Base64 クラスのインポートを追加。
import java.util.Base64;
・変換後の文字列を格納する変数 b64 と getter を設定。
private String b64;public String getB64() {return b64;}
・send クラスに Base64 エンコード処理を追加
this.b64 = "Base64 Encode=> " + Base64.getEncoder().encodeToString(this.name.getBytes());
2.output.xhtml
・Base64 エンコード結果の表示を追加
<h:outputText value="#{helloBean.b64}" />
と、まあ、こんな感じで。
実際に実行してみる。
おお、なんかエンコードされている。
「猪俣 性交渉」が「kpaWk4FAkKuM8I/C」に変換されたんやな。
試しに、Perl で Base64 デコードプログラム作って、「kpaWk4FAkKuM8I/C」をデコードしてみる。
プログラムソースはこんな感じ。
#!/usr/bin/perluse MIME::Base64;print "Word=> ";$w = <STDIN>;chomp $w;$w = decode_base64($w);print "Decode Word=> $w\n";
じゃ、実際に実行。
$ ./b64decode.plWord=> kpaWk4FAkKuM8I/CDecode Word=> 猪俣 性交渉
おお!!ちゃんと「猪俣 性交渉」に戻ったやん!!
あ、「猪俣 公章」って打ったつもりが「猪俣 性交渉」になってた!!
コメントする