Excel関数でシーザー暗号

過信は禁物ですけどね。

シーザー暗号というのをご存知でしょうか。古典的な暗号方式で、文字を任意の数だけずらすというもの。たとえば「0Caesar」という文字をシーザー暗号で5文字ずらすと、「5Hfjxfw」になるという具合。

2016-04-13

シーザー暗号を計算してくれるサイトはいくつかあるのですが、パスワード作りなどで使用したい場合、外部サービスに頼るのは不安があるので、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」に循環します。循環するのは半角文字のみです。複数回、文字をずらしたい場合はセルを縦に拡張し、複数の文字を変換したい場合は列をコピー&ペーストしてください。

パスワードを作る場合、名前や生年月日のままだと簡単に類推されてしまいますが、シーザー暗号で文字をずらせば、多少は類推されにくくなります。簡易的なものなので、過信は禁物ですけどね。パスワードというものは、総当たりで時間をかければ、大概のものは突破されてしまうので、単純なものよりは時間をかせげるようになる、ていどに考えておけばよろしいかと。