Base64ってなに?(と書いておきながら、Base64自体の説明はしてませんw)
きっとこんな感じでできたに違いないw
- 秘密の画像をブログに載せたいな。。
- みんなに見られても良いけど、見たい人にはパズルぐらい解いてもらおう。
- とりあえず、画像データを適当に区切って、英数字+記号あたりに置き換えてみるか。
- おぉ、アルファベットと数字と記号でデータを表現できそうだから、これでブログにアップ♪
もちろん嘘ですが・・・。何も説明してなくて、すみません。
詳しい話は、こちらを見てくださいませ(^^♪
参照:Wikipedia Base64
Base64クラスを使って、文字列のエンコードとデコードを行うサンプル
対象の文字列、Base64でエンコードした文字列、さらにデコードした文字列をそれぞれ標準出力します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import java.util.Base64; public class Base64EncodeTest { public static void main(String[] args) { String str = "hogehoge...だけだとつまらないので日本語にしたよ(; ・`д・´)"; System.out.println("target:" + str); System.out.println("encode:" + encode(str)); System.out.println("decode:" + decode(encode(str))); } public static String encode(String str) { return Base64.getEncoder().encodeToString(str.getBytes()); } public static String decode(String str) { return new String(Base64.getDecoder().decode(str.getBytes())); } } |
実行結果
1 2 3 | target:hogehoge...だけだとつまらないので日本語にしたよ(; ・`д・´) encode:aG9nZWhvZ2UuLi7jgaDjgZHjgaDjgajjgaTjgb7jgonjgarjgYTjga7jgafml6XmnKzoqp7jgavjgZfjgZ/jgogoOyDvvaVg0LTvvaXCtCk= decode:hogehoge...だけだとつまらないので日本語にしたよ(; ・`д・´) |
サンプルの解説
java.util.Base64クラスを使うと、簡単にエンコード・デコードができます。
Base64クラスは、byte配列でのやりとりになるので、Stringからbyte配列に変換しています。
ここでは指定していませんが、Stringからbyte配列へ変換する際は、”UTF-8″等の文字コードを指定しましょうw