0

この質問に対する直接的かつ明確な答えを求めて、グーグルのいたるところを見回しましたが、どこにも行きませんでした。ここでは、単純明快な「はい」か「いいえ」が素晴らしいでしょう...

SOAPメッセージヘッダー内のデータに署名するために使用する「AES-256対称(「セッション」とも呼ばれる)キー」(暗号化ではなくキーのみ)を作成するように求められました。要件は、キーの「サイズ」が 256 であることです...はい、わかっています...

MCRYPT_RIJNDAEL_128 サイズ 32 は、実際には PHP の AES-256 暗号であることを知っています。私はそれをすべて読みました。

私は、彼らのために働くJavaでの実装を持っていると私に尋ねている人々を知っています。私はphpで作業する必要があります。私は次のコードを持っています: `

$keysize = mcrypt_module_get_algo_key_size(MCRYPT_RIJNDAEL_128);
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '',MCRYPT_MODE_CBC, '');
$keysize = 32;
while (strlen($key) < $keysize) $key =  mcrypt_create_iv(mcrypt_enc_get_iv_size ($td),MCRYPT_RAND);  

これにより、生の「キー」が得られます。

質問: SOAP セキュリティ ヘッダーに署名するために使用できる「AES-256 セッション/対称キー」の上の生のキーはありますか?

生のキーが署名に使用された後、公開証明書のキーを使用して暗号化され (rsa-oaep-mgf1p を使用)、ヘッダーに埋め込まれます (EncryptedKey タグ)。反対側で復号化し、署名済みヘッダーのダイジェストを検証するために使用する必要があります...そしてガンダルフが現れます...

反対側から(Javaを使用して)「対称キーの生成方法に問題がある」と言われましたが、何が問題なのか、その間違いを正す方法について明確な説明がなかったので、私は尋ねています。

誰でも助けることができますか?私はそれを感謝します...

ありがとう。

4

1 に答える 1

0

あなたのやり方は大丈夫です。しかし、もっと簡単な方法は

random_bytes(32)

また

openssl_random_pseudo_bytes(32)

PHP のバージョンが 7.0 未満の場合。

16 バイトの IV を生成することもできます

random_bytes(16)
于 2016-04-26T03:28:35.230 に答える