BASE64エンコーディングをRubyで自力実装した
参考サイト
BASE64
Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。
http://ja.wikipedia.org/wiki/Base64
- データ変換形式
- メール等でも使われている
- やりかた
- 元データを6bitに分割
- ちょうど6bitにならない場合は0を足す
- 6bitデータを対応する文字に4文字ずつ変換(A-Za-z0-9+/)
- 4文字にならない場合は=を足す
- 全部くっつける
- 元データを6bitに分割
ふむう。。何か書けそう? ちょっとやってみるか。
ソース
- まず、変換したい文字のASCII値を取得
- 次にそれを2進数に変換(1と2はまとめてもいいかも)
- 6bit毎に分けて割り切れない分は0を足す
- 6bitのデータを変換テーブルと照らしあわせて対応する1文字と変換
- 4文字になるまで=を足す
検証
- テスト文字列: kk_Ataka
己
$ ruby base64.rb kk_Ataka BYTE16:6b6b5f4174616b61 BYTE2 :0110101101101011010111110100000101110100011000010110101101100001 ADD 0 :011010110110101101011111010000010111010001100001011010110110000100 TRANS :a2tfQXRha2E ADD = :a2tfQXRha2E= a2tfQXRha2E=
データ変換ツール(BASE64, URLエンコード(URLデコード), HEX(16進ダンプ), MD5, SHA-1変換フォーム)
- プレーンTEXT, 変換不要, 未指定, BASE64
a2tfQXRha2E=
JavaScriptによるBASE64変換−ちゃよて・ちゃよて
a2tfQXRha2E=