0

以下を使用して、ColdFusionで文字列を暗号化しました。

<cfset strEnc=ToBase64(Encrypt("some text","123", "AES","Base64"))>

以下を使用して、ColdFusionで文字列を復号化できます。

<cfset strDec=ToString(Decrypt(ToBinary(strEnc), "123", "AES","Base64"))>

strEncしかし、PHPで復号化できません。PHPでいくつかの復号化関数を見つけました。ivただし、パラメータが必要です。誰か助けてもらえますか?

4

3 に答える 3

3

各言語で提供されるネイティブメソッドは、予想される引数、パラメーター、および暗号化メソッドの点で異なります。

ある言語で暗号化して別の言語で復号化できるようにするには、「グローバル」セキュリティツールを使用する必要があります。これは言語を超えて機能します。

ESAPI(Enterprise Security API)https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_APIをご覧になることをお勧めします。これは、OWASP(Open Web Application Security Project)によって作成されたオープンソースのセキュリティライブラリです。 )https://www.owasp.org

ESAPIライブラリ(https://github.com/damonmiller/cfesapi)とPHPライブラリ(http://code.google.com/p/owasp-esapi-php/)のColdFusion固有の実装があります。

どちらも同じコアセキュリティプラクティスに基づいて構築されているため、さまざまなメソッドの実装は、それらを使用するプラットフォーム/言語に関係なく機能します。

ESAPIは基本的に、ニーズに合わせてセキュリティライブラリのさまざまな部分を選択して使用できる一連のインターフェイスを使用して構築されています。

データをハッシュおよび暗号化するためのメソッドを提供するEncryptorをご覧ください。また、署名して封印して、データの整合性チェックを追加することもできます。(それはすべて、あなたがどれだけ深く行きたかったかによります)。

ESAPIを使用すると、開発者は基本的に、ライブラリが読み取るセキュリティ構成ファイル(単純なテキストファイル)に、ハッシュキーやソルトキー、暗号化キーなどの詳細を設定できます。この場合、PHP実装は、ColdFusion実装と同じセキュリティの詳細を簡単に持つことができます。つまり、同じ暗号化/ハッシュ/ソルトなどの詳細を共有し、同じデータを同じ値に暗号化および復号化します。

このコメントにコードサンプルを追加していませんが、これがあなたを助け、あなたの要件を満たす何かのように思える場合は、上記のESAPIライブラリへのリンクをチェックしてください。拾い上げて学ぶのはかなり簡単で、必要なことを簡単に行うことができます。

于 2012-06-29T07:56:01.630 に答える
1

見てbase64_decode()aes_decrypt

于 2012-06-29T07:17:19.143 に答える
1
$key = base64_decode($key);

$data = base64_decode($data);

echo mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_ECB);
于 2012-07-16T11:03:36.847 に答える