過信は禁物ですけどね。
シーザー暗号というのをご存知でしょうか。古典的な暗号方式で、文字を任意の数だけずらすというもの。たとえば「0Caesar」という文字をシーザー暗号で5文字ずらすと、「5Hfjxfw」になるという具合。
シーザー暗号を計算してくれるサイトはいくつかあるのですが、パスワード作りなどで使用したい場合、外部サービスに頼るのは不安があるので、Excelで簡単に算出できる関数を作ってみた。
=IF(A1="","",IF((CODE(A1))=90,"A",IF((CODE(A1))=122,"a",IF((CODE(A1))=57,"0",CHAR(CODE(A1)+1)))))
上記の関数を「A2」セルに設定すると、「A1」に入力した1文字の大小英字、数字を1文字ずらします。大小英字「Z,z」の次は「A,a」に、数字「9」の次は「0」に循環します。循環するのは半角文字のみです。複数回、文字をずらしたい場合はセルを縦に拡張し、複数の文字を変換したい場合は列をコピー&ペーストしてください。
パスワードを作る場合、名前や生年月日のままだと簡単に類推されてしまいますが、シーザー暗号で文字をずらせば、多少は類推されにくくなります。簡易的なものなので、過信は禁物ですけどね。パスワードというものは、総当たりで時間をかければ、大概のものは突破されてしまうので、単純なものよりは時間をかせげるようになる、ていどに考えておけばよろしいかと。
![]() 【送料無料】 暗号技術入門 秘密の国のアリス / 結城浩 【単行本】 |