DECRYPT  
説明

Encrypt 関数によって暗号化された文字列など、標準の暗号化テクニックを使用して暗号化された文字列を解読します。

 
戻り値

解読された文字列

 
カテゴリ

セキュリティ関数、文字列関数

 
関数のシンタックス
Decrypt(encrypted_string, key[, algorithm[, encoding]])
 
関連項目

Duplicate、Encrypt

ColdFusion MX 7: algorithm パラメータと encoding パラメータが追加されました。

 
パラメータ

 
使用方法

この関数では、文字列の暗号化と解読に同じキーを使用する、シンメトリカルなキーベースのアルゴリズムが使用されます。パラメータ値は、文字列をエンコードするときに使用した値と一致する必要があります。暗号化された文字列のセキュリティは、キーの機密性によって異なります。

ColdFusion MX 7 では、JCE (Java Cryptography Extension) を使用し、Sun JCE デフォルトセキュリティプロバイダを含む Sun Java 1.4.2 ランタイムがインストールされます。このプロバイダには、前の「パラメータ」に示したアルゴリズムが含まれています。JCE フレームワークには、他のプロバイダを実装するための機能も含まれています。ただし、当社ではサードパーティのセキュリティプロバイダに対するテクニカルサポートは提供していません。

 
<h3>Decrypt の例</h3>

<!--- フォームが送信された場合、次の処理を実行します。 --->
<cfif IsDefined("Form.myString")>
   <cfscript>
      /* GenerateSecretKey は CFMX_COMPAT アルゴリズムのキーを生成しないので、
        フォームからキーを取得して使用します。
      */
      if (Form.myAlgorithm EQ "CFMX_COMPAT")
         theKey=Form.MyKey;
      // その他の暗号化テクニックの場合は、シークレットキーを生成します。
      else
         theKey=generateSecretKey(Form.myAlgorithm);
      //文字列を暗号化
      encrypted=encrypt(Form.myString, theKey, Form.myAlgorithm,
         Form.myEncoding);
      //文字列を解読
      decrypted=decrypt(encrypted, theKey, Form.myAlgorithm, Form.myEncoding);
   </cfscript>

   <!--- 暗号化と解読に使用した値、
         および結果を表示します。 --->
   <cfoutput>
      <b>アルゴリズム :</b> #Form.myAlgorithm#<br>
      <b>The key:</B> #theKey#<br>
      <br>
      <b>文字列 :</b> #Form.myString# <br>
      <br>
      <b>暗号化 :</b> #encrypted#<br>
      <br>
      <b>解読 :</b> #decrypted#<br>
   </cfoutput>
</cfif>

<!--- 入力形式  --->
<form action="#CGI.SCRIPT_NAME#" method="post">
   <b>エンコードを選択</b><br>
   <select size="1" name="myEncoding" >
      <option selected>UU</option>
      <option>Base64</option>
      <option>Hex</option>
   </select><br>
   <br>
   <b>アルゴリズムを選択</b><br>
   <select size="1" name="myAlgorithm" >
      <option selected>CFMX_COMPAT</option>
      <option>AES</option>
      <option>DES</option>
      <option>DESEDE</option>
   </select><br>
   <br>
   <b>キーを入力</b> (CFMX_COMPAT 暗号化の場合にのみ使用)<br>
   <input type = "Text" name = "myKey" value = "MyKey"><br>
   <br>
   <b>暗号化する文字列を入力</b><br>
   <textArea name = "myString" cols = "40" rows = "5" WRAP = "VIRTUAL">この文字列は暗号化され
ます (入力を加えて、暗号化する文字列を置き換えることができます)。
   </textArea><br>
   <input type = "Submit" value = "文字列を暗号化">
</form>
ENCRYPTED_STRING  
解読する文字列です。
KEY  
文字列値です。CFMX_COMPAT アルゴリズムの場合、これは文字列の暗号化に使用された シードです。その他のアルゴリズムの場合は、文字列の暗号化に使用されたキーです。
ALGORITHM  
(オプション) 文字列を解読するために使用するアルゴリズムです。文字列を暗号化するとき に使用したものと同じアルゴリズムでなければなりません。ColdFusion MX では、次のアル ゴリズムを使用する暗号ライブラリがインストールされます。
  • CFMX_COMPAT: ColdFusion MX およびそれ以前のリリースで使用されるアルゴリズムです。このアルゴリズムは、最も安全性が低いオプションです (デフォルト)。
  • AES: NIST (National Institute of Standards and Technology: 米国標準技術局) FIPS-197 で定義された Advanced Encryption Standard です。
  • BLOWFISH: Bruce Schneier 氏が定義した Blowfish アリゴリズムです。
  • DES: NIST FIPS-46-3 で定義された Data Encryption Standard アルゴリズムです。
  • DESEDE: NIST FIPS-46-3 で定義された Triple DES アルゴリズムです。
これら以外の暗号アルゴリズムを使用するセキュリティプロバイダをインストールした場合 は、その暗号化アルゴリズムや暗号解読アルゴリズムを指定することもできます。
ENCODING  
(オプション) このパラメータを指定する場合は、algorithm パラメータも指定する必要があ ります。これは、データを文字列として表すために使用するバイナリエンコードです。文字 列を暗号化するときに使用したものと同じアルゴリズムでなければなりません。
  • Base64: IETF RFC 2045 で定義された Base64 アルゴリズムです。
  • Hex: バイト値を 16 進数で表す、A 〜 F および 0 〜 9 の文字です。
  • UU: UNIX 標準の UUEncode アルゴリズムです (デフォルト)。