暗号化とは、何らかの方法でデータを読めなくする方法である。
元のデータを取り出すには、復号化という作業が必要になる。
もっとも原始的な方法のひとつに、アルファベットをずらすという方法(シーザー暗号)がある。
例えばこのブログのタイトルを1文字ずつずらしていくと、
t-hom’s diary
↓
u-ipn't ejbsz
↓
v-jqo'u fkcta
↓
w-krp'v gldub
このように簡単には読めなくなる。
今回は実際にVBAで作ってみた。
Sub シーザー暗号() 平文 = "t-hom's diary" 暗号文 = "" オフセット = 3 For i = 1 To Len(平文) 文字コード = Asc(Mid(平文, i, 1)) Select Case 文字コード Case 65 To 90 文字コード = 文字コード + オフセット 余り = 文字コード - 91 If 余り >= 0 Then 文字コード = 65 + 余り Case 97 To 122 文字コード = 文字コード + オフセット 余り = 文字コード - 123 If 余り >= 0 Then 文字コード = 97 + 余り Case Else 'Do Nothing End Select 暗号文 = 暗号文 & Chr(文字コード) Next Debug.Print 暗号文 End Sub
復号化するにはアルファベットを左に3つずらせば良い。
実に簡単ではあるがパッと見では読めなくなるので、Excelにパスワードをそのままメモしているようなケースでは、平文より幾分マシである。
※ちょっと分析されたらアウトなので、重要なものには使用しない方が良い。