Samstag, 25. April 2015

RSA Verschlüsselung in PHP

Nachdem ich in einem vorigen Post die Verwendung der RSA Verschlüsselung in C# vorgestellt habe, möchte ich nun zeigen, wie man sie in PHP benutzt. Hierfür benutzen wir die Bibliothek phpseclib, welche viele kryptographische Funktionen und Sicherheitsprotokolle zur Verfügung stellt. Zuerst müssen wir diese herunterladen und dann auf unseren Server laden, wo auch das PHP Skript ausgeführt werden soll. RSA ist in der Datei Crypt/RSA.php definiert, welche wir mittels include in unserem Skript einbinden (der relative Pfad muss natürlich passen). Bei Erzeugen einer neuen Instanz der Klasse Crypt_RSA und Aufrufen der Funktion createKey() wird ein neues Schlüsselpaar, bestehend aus privatem und öffentlichem Schlüssel, erzeugt. Die Funktion extract() schreibt diese in die Variablen $publickey und $privatekey. Die Funktionen encrypt() und decrypt() ver- bzw. entschlüsseln, zuvor muss aber der passende Schlüssel (der öffentliche des Empfängers zum Verschlüsseln, der Empfänger seinen privaten zum Entschlüsseln) mittels loadKey() geladen werden.
Im folgenden Beispiel wird ein Text verschlüssel und direkt wieder entschlüsselt:

<?php
include('Crypt/RSA.php');

$rsa = new Crypt_RSA();
extract($rsa->createKey());

echo $privatekey;
echo "<br /><br />";
echo $publickey;
echo "<br /><br />";

$rsa->loadKey($publickey);
$ciphertext = $rsa->encrypt("Secret string.");
echo $ciphertext;

$rsa->loadKey($privatekey);
echo "<br />";
echo $rsa->decrypt($ciphertext);
?>

Das Skript lässt sich hier ausführen.

Keine Kommentare:

Kommentar veröffentlichen