暗号化データをデータベースから復号する

データベースに保存した暗号化データを復号してシートに表示するには、暗号化データを UTIL.DECRYPT(データを復号する)関数を使用して復号(元のデータに戻す)し、「セルに値をセットする」アクション等を使用してシートに表示します。
ここでは、UTIL.DECRYPT 関数を使用して、暗号化データを復号してシートに表示する方法を説明します。

参考

データの暗号化例については 暗号化データをデータベースに保存する を参照してください。

暗号化キー情報を設定する

暗号化データを復号するには事前に '暗号化キー' を設定する必要があります。設定方法は 暗号化キー情報の設定をする を参照してください。
設定した暗号化キー名は UTIL.DECRYPT 関数で使用します。

注意

暗号化データを復号して元のデータに戻すためには、暗号化関数(UTIL.ENCRYPT 関数)で使用した同じ暗号化キー情報を使う必要があります。

復号関数を使用する

UTIL.DECRYPT 関数は、第1引数に '暗号化文字列(復号したい値)' を指定し、第2引数に設定した '暗号化キー名' を指定します。
../../../_images/img_01360.png

ヒント

  • どちらの引数にも、セル、または、名前を指定することができます。
  • '暗号化キー名' は大文字小文字を区別しません。
  • 暗号化キー名 ’default’ が設定されている場合は、 '暗号化キー名' を省略することで、 ’default’ 暗号化キーの情報を使って復号することができます。
UTIL.DECRYPT 関数は成功すると、暗号化文字列を復号した結果(暗号化前のもともとのデータ)を返します。
  • 例:暗号化文字列 ’876D2EABAF9D4BA1FE832F875506739C7707BC5BAB91C507BBC9DD3070E04916’ を登録した暗号化キー情報 ’key-1’ を使って復号
../../../_images/img_02296.png

注意

以下のケースの場合は復号が失敗(#VALUE!)します。

  • 暗号化文字列が文字列ではない場合(例えば、セル範囲指定をした場合など)

  • 暗号化キー名が文字列ではない場合(例えば、セル範囲指定をした場合など)

  • 暗号化に使用したものと異なる暗号化キーを指定した場合

  • 指定した暗号化文字列が、指定した名前の暗号化キーファイルで暗号化したものではない場合

  • 指定した名前の暗号化キー情報が登録されていない場合

  • 指定した名前の暗号化キーファイルが読み取れない場合

  • 指定した名前の暗号化キーファイルが CELF の暗号化キー作成機能で作成したファイルでない場合

  • C:/ProgramData/Microsoft/Crypto/RSA/MachineKeys フォルダの Everyone グループに「特殊なアクセス許可」が付与されていない場合
    ※ この場合、上記フォルダにアクセス許可がないため、上記フォルダに「特殊なアクセス許可」を付与する必要があります。
    「特殊なアクセス許可」を付与するには、以下のコマンドを実行してください。(必要に応じて管理者権限で実行してください。)
    icacls "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" /inheritance:e /grant Everyone:(RD,RA,REA,WD,AD,WA,WEA,RC)
    

暗号化データをデータベースから復号してシートに表示する

UTIL.DECRYPT 関数を使って暗号化データをデータベースから復号してシートに表示する方法を説明します。
ここでは、以下のような簡単な取得処理を例とし、暗号化データをデータベースから復号してシートに表示します。
../../../_images/img_03217.png
復号の対象は以下のカラムとし、「名前」はそのまま表示することとします。
  • 住所
  • 電話番号
  • 生年月日

注意

UTIL.DECRYPT 関数は、暗号化文字列を復号した文字列 を返します。よって、必要に応じて表示するセルの書式を設定する必要があります。

「取得」アクション後に「セルに値をセットする」アクションで復号する

  1. 以下のように、「取得」アクションにて表示したいセルに暗号化データをセットするように設定します。この後に「セルに値をセットする」アクションにて UTIL.DECRYPT 関数を設定します。
../../../_images/img_06122.png
  1. アクションが実行されたタイミングで関数により値が復号され、復号データがシートに表示されます。
../../../_images/img_07107.png

ちなみに

次のように、シート上に UTIL.DECRYPT 関数を設定して復号することもできます。

  1. 「取得」アクションにて、復号したいデータ(暗号化データ)を表示セルとは別の作業域のセルに取得するように設定します。
../../../_images/img_04176.png
  1. 以下のように、復号して表示したいセルに UTIL.DECRYPT 関数を設定し、それぞれデータベースから取得したデータ(暗号化データ)を設定したセルを参照するようにしておきます。「取得」アクションにて暗号化データがセルに設定されたタイミングで関数により復号されて、シートに表示されます。
../../../_images/img_05159.png

注意

暗号化されているデータを取得する際に正しく検索できる条件は以下になります。

  • が次と一致する

  • が次と一致しない

  • が次のいずれかと一致する

  • が次のいずれかと一致しない

  • が空

  • が空でない

    ../../../_images/img_0898.png

上記は「完全一致」検索条件であり、暗号化データの性質上、CELFにおいては「部分一致」は正しく検索できないことに注意してください。

ヒント

下記の検索条件は、セルに関数を設定して、検索条件欄にそのセルを指定してください。

  • が次のいずれかと一致する
  • が次のいずれかと一致しない

関連キーワード

暗号、暗号化、復号、セキュリティ、AES、データベース、関数、鍵、キー、アルゴリズム


../../../_images/celf_help_mascot52.png