暗号化の実験(文字列を画像化してみる)2
昨日の記事に引き続きの第二弾です。あれから少々手を加えてみました。
※変更点
この2点の修正で大幅に画像化できる文字量がアップしました。
※変更点
- 画像作成のPerlモジュールをImagerからGDへ変更(色指定がRRGGBBでできるようになったので変換文字量が倍増)
- 文字列にBase64をかける前にZlibのCompressで圧縮をかける(更に記憶できる量を増やす)
この2点の修正で大幅に画像化できる文字量がアップしました。
2-1.変更点のご説明
先にも書きましたが昨日の時点から改良を加えてみました。変更点としてはまずPerlモジュールImagerからGDへの移行で色指定をRGBからRRGGBBに変更できました(まぁImagerでも突き詰めればできるのかも知れませんが簡単な手法で逃げてしまいました)。コレによって単純に倍のコードを画像に埋め込むことができるので、約倍の文字量を画像化できます。
更にBase64にかける前の文字列をPerlモジュールCompress::ZlibのCompressで圧縮することで更に文字量を稼ぐことに成功しました。まぁ細かいことは先日のと動作を比較してみてください。格段に小さくなっています(画像サイズであって容量の変化は定かではない)。
圧縮率の比較
3.鍵を付けてみる
先日の部分までだと単純に画像化しているので誰でも復号化できる。まぁどなたにでもご自由に見てもらう内容であればそれで良いですが、中には特定の人にだけ復号化させたい場合などがあります。そのために復号化するための鍵を付けてみることにしました。コレはユーザが画像化する際に登録した鍵から生成した変数でBase64の文字列を変換して、復号化の際は逆変換をするというもの。まぁ指定しなければ前日までの動きと変わりません。
昨日のものとは送っている先が違うので下記フォームで生成したものは、このページの更に下にあるフォームで復号化してください。
復号化フォーム
こんな感じです。昨日のものよりはかなり画像化できる文字量も増えたので実用性も増したのでは?って思っていますが。使い道などを募集しています。では続きはまた今度!
先にも書きましたが昨日の時点から改良を加えてみました。変更点としてはまずPerlモジュールImagerからGDへの移行で色指定をRGBからRRGGBBに変更できました(まぁImagerでも突き詰めればできるのかも知れませんが簡単な手法で逃げてしまいました)。コレによって単純に倍のコードを画像に埋め込むことができるので、約倍の文字量を画像化できます。
更にBase64にかける前の文字列をPerlモジュールCompress::ZlibのCompressで圧縮することで更に文字量を稼ぐことに成功しました。まぁ細かいことは先日のと動作を比較してみてください。格段に小さくなっています(画像サイズであって容量の変化は定かではない)。
圧縮率の比較
- 昨日のもので「春はあけぼの」を作成しようとすると「〜秋は夕暮れ。」ぐらいが限界で約126文字(ドットのサイズや文字長のデータが入っているので128文字ー2文字)
- 今回のものだと「春はあけぼの」を最後まで入力してもあまりある状態です(鍵無し)。
3.鍵を付けてみる
先日の部分までだと単純に画像化しているので誰でも復号化できる。まぁどなたにでもご自由に見てもらう内容であればそれで良いですが、中には特定の人にだけ復号化させたい場合などがあります。そのために復号化するための鍵を付けてみることにしました。コレはユーザが画像化する際に登録した鍵から生成した変数でBase64の文字列を変換して、復号化の際は逆変換をするというもの。まぁ指定しなければ前日までの動きと変わりません。
昨日のものとは送っている先が違うので下記フォームで生成したものは、このページの更に下にあるフォームで復号化してください。
復号化フォーム
こんな感じです。昨日のものよりはかなり画像化できる文字量も増えたので実用性も増したのでは?って思っていますが。使い道などを募集しています。では続きはまた今度!
コメントする