Ich schaute mich um - und überall auf Google - für die direkte und klare Antwort auf diese Frage, aber kam nirgends. also hier schlicht und einfach ja oder nein wäre genial ...Wie erzeuge ich einen AES-256 symmetrischen Schlüssel mit PHP
ich wurde gebeten, einen "AES-256 symmetrischen (auch" Session ") Schlüssel zu erstellen - nicht Verschlüsselung, nur der Schlüssel - zu verwenden Signieren Sie Daten innerhalb eines Soap-Headers. die Voraussetzung ist, dass der Schlüssel 256 „in der Größe“ ist ... ja, ich weiß ...
ich weiß, dass die MCRYPT_RIJNDAEL_128 Größe 32 ist wirklich die AES-256-Chiffre in PHP. Ich lese all das.
ich weiß, dass die Leute mich fragen, die eine Implementierung in Java haben, die für sie arbeitet. Ich muss mit PHP arbeiten. Ich habe den folgenden Code: `
$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);
dies mir nicht geben einen rohen "Schlüssel".
die Frage: ist der rohe Schlüssel über eine "AES-256-Sitzung/symmetrischer Schlüssel", die verwendet werden kann, um Soap Security Header zu signieren?
Nachdem der Raw-Schlüssel für die Signatur verwendet wurde, wird er mit einem Schlüssel aus einem öffentlichen Zertifikat (unter Verwendung von rsa-oaep-mgf1p) verschlüsselt und in die Header (EncryptedKey-Tag) eingebettet. es muss am anderen Ende entschlüsselt werden und verwendet werden, um die Digests der signierten Header zu verifizieren ... und dann erscheint gandalf ...
Ich frage, weil ich von der anderen Seite erzählt wurde (mit Java) dass "etwas nicht stimmt, wie der symmetrische Schlüssel erzeugt wird", aber ohne eine klare Erklärung dafür, was falsch ist und wie man das falsch machen kann.
kann jemand helfen? ich würde es schätzen ...
danke.
Es wahrscheinlich zu generieren ist, aber dieser Code ist unnötig kompliziert. –
ok. Also zufällige Bytes() oder openssl_random_pseudo_bytes() ist besser ?! Auch - es gibt keine Hinweise darauf, aber da ich den Schlüssel verschlüsseln muss - muss ich ihn vor der Verschlüsselung base64_encodieren? Der Code, den ich auf der Soap Security gefunden habe, verschlüsselt den rohen Schlüssel. ich stelle sicher, dass ich genug Informationen haben kann. Vielen Dank. – darwingoat
Ja, die beiden Alternativen sind besser in Bezug auf Code, da Sie keine Schleife verwenden müssen. Ich habe keine Erfahrung mit SOAP-Verschlüsselung, also habe ich keine Ahnung, wie es nach dem Erzeugen des Schlüssels verwendet werden kann. –