前回の記事では、データファイルの暗号化を始める方法について説明しました。今回は、暗号化されたデータファイルで作業するための追加の方法について説明します。新しい4Dコマンドです。これらのコマンドは、ほとんどの暗号化要件をサポートするように設計されており、暗号化されたソリューションを顧客に提供することができます。
データファイルの暗号化
MSCに加え、暗号化を管理するために Encrypt data file()コマンドを使用します。
C_TEXT($folder;$passphrase)
$passphrase :=Request("Enter the passphrase")
if (OK=1)
$folder :=Encrypt data file("Macintosh HD:Users:structures:myDataBase.4DB";
"Macintosh HD:Users:data:myData.4DD";$passphrase) // myData.4DD is not opened
End if
データ暗号化キーの言語による提供
4Dのデータ暗号化キー自動検出機能に加え、新たに provideDataKey()コマンドを利用することができます。 dsオブジェクトを使用して、開いたデータファイルにデータ暗号化キーを提供することができます。これは、暗号化されたデータへのアクセスを制御するために、独自のユーザーインターフェイスを構築する際に便利です。
一方 dsはORDAの機能ですが provideDataKey()コマンドは、ORDA とクラシック 4D の両方のコードで有効です。
C_OBJECT($keyStatus)
(パスワードは暗号化されています) (パスワードが正しくありません) (パスワードが正しくありません) (暗号化されています)
C_TEXT ($passphrase)
$passphrase :=Request("Enter the passphrase")
if (OK=1)
$keyStatus :=ds.provideDataKey($passphrase)If ($keyStatus.success)
ALERT ("You have offered a valid encryption key")
Else
ALERT ("You were provided an invalid encryption key.") ("暗号化キーが正しくありません")
暗号化されたデータへのアクセスは拒否されます。")
End if
End if
暗号化状態を取得する
この新しい encryptionStatus()コマンドは dsオブジェクトで使用できます。これは、開いたデータファイルが暗号化されているかどうか、有効なデータ暗号化キーが提供されているかどうかをチェックします。
C_OBJECT($status;$provideStatus)
されていません。
C_TEXT ($passphrase)
$status :=ds.encryptionStatus()
Case of
: (Not($status.isEncrypted))
ALERT("データは暗号化されていません")
:(($status.isEncrypted) & (Not($status.keyProvided))
ALERT ("データは暗号化されており、有効な暗号化キーが提供暗号化されたデータへのアクセスは拒否されます")
: (($status.isEncrypted) & ($status.keyProvided))
ALERT("データは暗号化されており、暗号化キーはすでに提供されています。暗号化されたデータへのアクセスを許可します")
End case
その他のコマンド
未開封のDATAファイルの状態
この Data file encryption status()コマンドは、指定された未開封のデータファイルの暗号化ステータスを返します。これにより、データファイルを開く前に、暗号化の状態を確認することができます。
新しいデータキー()
このコマンドは New data key()コマンドは、指定されたパスフレーズからバイナリデータ暗号化キーを生成します。4Dは、データファイルを開く際に、接続されたデバイスの有効なデータ暗号化キーを自動的に検索しますので、このコマンドを使用すると、独自のバイナリデータ暗号化キーを生成して、ファイルに書き込むことができます。
データ鍵の発見
データファイルを開く前に、データ暗号化キーの入ったデバイスを接続するのを忘れた場合は Discover data key()コマンドを使用してキーを提供することができます。
データ・キーの登録()
データファイルを開くたびにデータ暗号化キーを入力する必要がないようにするために Register data key()コマンドを使用して、4Dキーチェーンに追加することができます。
アクションのコマンド
上記のHDIは、このブログ記事で紹介したすべてのコマンドをデモしており、自分のデータベースでどのように使うか、具体例を交えて概要を説明しています。