【FileMaker】FileMaker 16の暗号と復号をファンタジックに解説する

さて、FileMaker 16で何が嬉しいかというと、やはり作り込みをする時間が短縮されるような関数、簡単に言ってしまうと痒い所に手が届く関数が出てきたことでしょうか。
見た目がどうのという機能もうれしいですが、アプリを作る時間が大幅に短縮されるためには、スクリプトを実装する時間が短縮されることにあると思います。

今回は、今までのバージョンではプラグインなどで対応していた、暗号・復号に関する関数がバージョン16で標準装備となったので、ちょっと使ってみたいと思います。

この記事では、CryptEncryptCryptDecryptを使います。

暗号と復号とは?

ファンタジーっぽく言ってしまうと、
CryptEncryptは、指定されたオブジェクトに魔法をかけて別の姿にする呪文
CryptDecryptは、魔法で別な姿になったオブジェクトを元に戻す呪文
というところでしょうか。

魔法にかけるとどういういいことがあるかというと、

元の姿が隠せるので、バレません。

ですね。

ただし、魔法をかける側と魔法を解く側で同じ合言葉を使わないといけません。
合言葉は、keyと言ったり、saltと言ったりします。
FileMakerでは、keyと言っていますね。

暗号と復号をやってみる

では、実際に動きを見てみましょう。
FM16Crypt1_1.png

このサンプルでは、「暗号化するデータ」にとある文章を指定しています。
keyは、「1234567890」という数字です。
サンプルなので、適当に数字を入れていますが、実際には乱数などで作った方が合言葉を推測されずにすみます。

「暗号化するデータ」に「1234567890」という合言葉をつけて呪文を唱えると、「暗号化されたデータ」が出来上がります。
FM16Crypt1_3.png

試しにファイルをエクスポートして中身を見てみると、、、
FM16Crypt1_2.png
なんだかよくわからない記号がたくさん並んでいて、元の姿が隠せています。

では、元に戻す呪文で、元の姿に戻します。
FM16Crypt1_4.png
「暗号化されたデータ」から、「復号されたデータ」が現れました。

実装してみる

次に、「暗号処理」と「復号処理」がどのような呪文を書いているのか、見てみましょう。

まずは、テーブル定義から。
FM16Crypt1_5.png
今回はサンプルなので、全てグローバルで定義していますが、適宜レコードフィールドを指定してください。

暗号処理には、CryptEncryptを使います。
FM16Crypt1_6.png

復号処理には、CryptDecryptを使います。
FM16Crypt1_7.png

どちらも、同じ合言葉を使っているのがわかります。

使い所

この暗号・復号化は、新しい技術ではありません。
私が知る限りでは、20年前にはすでに技術雑誌に載っていたような気がします。
他言語では、すでに関数化されて実運用されています。
暗号化技術は年々進化していますが、やはり、インターネットで個人が使う環境が整ってきてから、急速に技術も進化してきているように思います。
中でも、今回の合言葉形式は、割と理解しやすい暗号・復号化ではないでしょうか。

では、どういう場面で活用できるかというと、機密文書などを保存する場合や離れた場所でのデータのやりとりなどに活用できます。
ネットショップなどが提供しているAPIなどでは、これにさらにこねくり回して(ハッシュと言ったりします)データ通信がより安心安全にやりとりできるように作られています。

まずは、部署間で機密文書を扱う際などに実装してみるのはいかがでしょうか。