説明
特定のアルゴリズムおよびエンコード方法を使用して、バイナリデータを暗号化します。
戻り値
バイナリデータ
カテゴリ
関数のシンタックス
EncryptBinary(binaryData, key, algorithm, IV_Salt, iterations) |
関連項目
履歴
- ColdFusion(2023 リリース)アップデート 8 および ColdFusion(2021 リリース)アップデート 14:デフォルトのアルゴリズムが CFMX_COMPAT から AES/CBC/PKCS5Padding に変更されました。
- ColdFusion(2021 リリース):認証暗号化のサポートが追加されました。
- ColdFusion 8:エンタープライズ版で RSA BSafe Crypto-J ライブラリを使用した暗号化がサポートされるようになりました。
- ColdFusion MX 7.01:この関数が追加されました。
パラメーター
パラメーター |
説明 |
---|---|
bytes |
暗号化するバイナリデータです。 |
key |
文字列。文字列を暗号化するために使用するキーまたはシードです。
|
algorithm |
(オプション)文字列の復号化に使用するアルゴリズムです。エンタープライズ版の ColdFusion では、RSA BSafe Crypto-J ライブラリがインストールされます。このライブラリを使用すると、FIPS-140 に準拠した強力な暗号化を利用できます。アルゴリズムの一覧については、Encrypt 関数を参照してください。ColdFusion スタンダード版では、次のアルゴリズムを使用する暗号化ライブラリがインストールされます。
|
IVorSalt |
(オプション)このパラメーターは、他の暗号化ソフトウェアの動作と一致するように ColdFusion の暗号化動作を調整する場合に使用します。このパラメーターを指定する場合は、algorithm パラメーターも指定します。
|
iterations |
(オプション)パスワードをバイナリキーに変換するための繰り返し回数です。このパラメーターは、他の暗号化ソフトウェアの動作と一致するように ColdFusion の暗号化動作を調整する場合に使用します。このパラメーターを指定する場合は、同時に algorithm パラメーターで PBE(Password Based Encryption:パスワードベースの暗号化)アルゴリズムを指定します。ブロック暗号化アルゴリズムの場合は、このパラメーターを指定しないでください。データの暗号化と復号には同じ値を使用します。 |
使用方法
この関数では、バイナリデータの暗号化と復号に同じキーを使用する、シンメトリカルなキーベースのアルゴリズムが使用されます。暗号化されたデータのセキュリティは、キーの機密性によって異なります。デフォルトのアルゴリズム以外のすべてのアルゴリズムについて、ColdFusion では JCE(Java Cryptography Extension)を使用し、Sun JCE デフォルトセキュリティプロバイダーを含む Sun Java ランタイムがインストールされます。このプロバイダーには、「パラメーター」節で示したアルゴリズムが含まれています。JCE フレームワークには、他のプロバイダーの実装を使用するための機能が含まれています。ただし、アドビでは、サードパーティのセキュリティプロバイダーに対するテクニカルサポートは提供していません。デフォルトのアルゴリズムは、ColdFusion 5 および ColdFusion MX で使用されていたものと同じです。ユーザーが関数パラメーターとして渡すシードに基づいた擬似乱数 32 ビットキーを使用する、XOR ベースのアルゴリズムが使用されます。このアルゴリズムは、使用可能な他のアルゴリズムに比べて安全性が劣ります。
例
次の例では、バイナリデータを暗号化および復号します。ファイルに含まれているバイナリデータを暗号化し、暗号化されたファイルを復号します。暗号化アルゴリズムとエンコード方式を指定する必要があります。CFMX_COMPAT アルゴリズムで使用するキーシード用のフィールドもあります。CFMX_COMPAT 以外のすべてのアルゴリズムでは、シークレットキーが生成されます。
<h3>EncryptBinary の例</h3>
|
例 2
<cfscript> // バイナリデータ b = ToBinary("abcd") // キーを生成します key = GenerateSecretKey("AES") iterations="AssoicatedData" randomIntegers = []; // SALT 値を生成します for ( i = 1 ; i <= 12 ; i++ ) { arrayAppend( randomIntegers, randRange( -128, 127, "SHA1PRNG" ) ); } initializationVector = javaCast( "byte[]", randomIntegers ) // 文字列を暗号化します enc1 = EncryptBinary(binaryData=b, key=key, algorithm="AES/GCM/NoPadding", IV_Salt=initializationVector, iterations=iterations) writeDump(enc1) </cfscript>