1

私はデータを取得し、phpseclibを使用して暗号化するためにPHPを使用しているデータ集約型プロジェクトに取り組んでいます。データのチャンクはECBモードのAESで暗号化されていますが、キーの長さはわずか10です。データを正常に復号化できます。

ただし、プロジェクトの後の段階でPythonを使用する必要があるため、Pythonを使用してデータを復号化する必要があります。PyCryptoを使用してみましたが、キーの長さは16、24、または32バイトでなければならないと表示されますが、そうではありません。phpseclibのドキュメントによると、「キーは最も近い有効なサイズにnullが埋め込まれています」が、Pythonでそれを実装する方法がわかりません。文字列の長さを6つのスペースで拡張するだけでは、機能しません。

私は何をすべきか?

4

1 に答える 1

3

(少なくとも)16バイトのキーを使用するようにPHPコードを調整することを強くお勧めします。そうしないと、暗号システムが他の方法よりもかなり弱くなります。

また、ECBモードでは入力データのパターンが明らかになる可能性があるため、CBCモードに切り替えることをお勧めします。これを暗号化して暗号文とともに保存するたびに、ランダムなIVを使用するようにしてください。

最後に、元の質問に対処するには:

phpseclibのドキュメントによると、「キーは最も近い有効なサイズにnullが埋め込まれています」が、Pythonでそれを実装する方法がわかりません。文字列の長さを6つのスペースで拡張するだけでは、機能しません。

スペース文字0x20はヌル文字と同じではありません0x00

于 2013-02-15T10:17:40.747 に答える