コード埋め込み用の「チラ見されてもほぼ安全」な軽い暗号の提案
2010-02-19-2
[Programming]
どこかのウェブサービスにアクセスするためのプログラムのソースコードにパスワードを直書きすることがある。
自宅で一人でプログラミングしてるときなら問題ないが、他の人が後ろからPCの画面を覗き込むかもしれない場面では直接パスワードを書くのはちょっと心配。
ということでそういう場面においてソースコードには、
(1)ちら見しただけでは覚えられない程度に暗号化したパスワード、
(2)それをデコード(複合化化)する短いコード片、
の二つを記述する方式を提案する。
記憶力がものすごくよい人には効果がないけど、まあそこはリスクとの兼ね合いってことでよろしく。
以下テストコード(暗号化処理と複合化処理)と実行結果。
コード(ungo.pl):
引数に生パスワードを入れて実行:
「encode」の文字列と複合化処理のコード片を目的のソースコードに貼ればOK。
適用前:
どうでしょう?
ref.
- [を] 手軽な暗号化[2003-07-24-1]
自宅で一人でプログラミングしてるときなら問題ないが、他の人が後ろからPCの画面を覗き込むかもしれない場面では直接パスワードを書くのはちょっと心配。
ということでそういう場面においてソースコードには、
(1)ちら見しただけでは覚えられない程度に暗号化したパスワード、
(2)それをデコード(複合化化)する短いコード片、
の二つを記述する方式を提案する。
記憶力がものすごくよい人には効果がないけど、まあそこはリスクとの兼ね合いってことでよろしく。
以下テストコード(暗号化処理と複合化処理)と実行結果。
コード(ungo.pl):
#!/usr/bin/perl use strict; use warnings; my $pw = shift @ARGV; print "original:$pw\n"; $pw =~ s%(.)%join"",map{tr/0-9a-f/a-p/;$_}int(rand(10)),unpack('H2',$1)%ge; print "encoded:$pw\n"; $pw =~ s%.(..)%($a=$1)=~tr/a-p/0-9a-f/;pack('H2',$a)%ge; print "decoded:$pw\n";
引数に生パスワードを入れて実行:
% ./ungo.pl this.is-pw original:this.is-pw encoded:ehehgiagjihdgcoagjihdhcnahabhh decoded:this.is-pw
「encode」の文字列と複合化処理のコード片を目的のソースコードに貼ればOK。
適用前:
適用後:my $email = 'yto@example.com'; my $password = "this.is-pw";
my $email = 'yto@example.com'; my $password = "ehehgiagjihdgcoagjihdhcnahabhh"; $password =~ s%.(..)%($a=$1)=~tr/a-p/0-9a-f/;pack('H2',$a)%ge;
どうでしょう?
ref.
- [を] 手軽な暗号化[2003-07-24-1]