2017-01-18 10 views
0

Ich arbeite an einer Verschlüsselung und bis jetzt ging ich davon aus, dass Sie einen öffentlichen Schlüssel benötigen, um einen Wert zu entschlüsseln, der mit einem privaten Schlüssel verschlüsselt wurde.Verschlüsseln und Entschlüsseln mit demselben privaten Schlüssel?

Das war, bis ich sah openssl_private_encrypt() und openssl_private_decrypt() mit dem gleichen Schlüssel verwendet.

Ich bin hier ein wenig verwirrt. Benötigen Sie den öffentlichen Schlüssel normalerweise nicht, um einen Wert erneut zu entschlüsseln, nachdem er mit einem privaten Schlüssel verschlüsselt wurde? Ist das nicht das, was die ganze asymmetric encryption bedeutet?

Es ist schwierig, zuverlässige Informationen über diese Art von Themen in einem PHP-Kontext zu finden, also hoffe ich, dass mir jemand ein bisschen mehr darüber erzählen könnte.

Danke fürs Lesen.

Antwort

2

Wenn Sie etwas mit einem privaten Schlüssel verschlüsseln, um es mit einem öffentlichen Schlüssel zu entschlüsseln, ist das einzige, was sicher ist, dass Sie der Absender sind.

Wenn Sie etwas mit einem öffentlichen Schlüssel verschlüsseln, um es mit einem privaten Schlüssel zu entschlüsseln, können Sie sicher sein, dass nur der Empfänger es öffnen kann.

Beste Sicherheit ist, wenn Sie etwas mit Ihrem privaten Schlüssel und den öffentlichen Schlüssel der anderen Person verschlüsseln, so dass die andere Partei es mit seinem privaten Schlüssel und Ihrem öffentlichen Schlüssel entschlüsseln kann.

Also ja: Sie können mit einem privaten Schlüssel verschlüsseln und entschlüsseln.

+0

Aber etwas wie 'openssl_private_encrypt()' mit 'openssl_public_decrypt()' umzukehren wird in PHP nicht funktionieren. Das ist also nicht ganz richtig? –

+0

@ Stephan-v: https://secure.php.net/manual/en/function.openssl-public-decrypt.php "' openssl_public_decrypt() 'entschlüsselt Daten, die zuvor mit' openssl_private_encrypt() 'verschlüsselt wurden und speichert die Ergebnis in entschlüsselte. " – Blaatpraat

+0

Mein schlechtes Ich meine 'openssl_private_encrypt()' und 'openssl_private_decrypt()' –

Verwandte Themen