Ich brauche zwei Funktionen/Methoden, eine zum Verschlüsseln, eine zum Decodieren. Dies ist nicht zum Speichern von Passwörtern. Jeder Benutzer hat einen bestimmten Schlüssel/Salz, um die Daten zu verschlüsseln.Wie man Zweiwege-Enkodierungs-/Dekodierungsmethoden unter Verwendung eines anwendungsspezifischen Schlüssels - PHP - erzeugt?
Dies ist, wie ich es arbeiten möchte:
istfunction encode($str, $key) {
// something fancy
}
function decode($str, $key) {
// something fancy
}
$key = $logged_in_user->get_key();
$plain = 'abc abc 123 123';
$encoded_data = encode($plain, $key);
// some_fancy_encrypted_data_that_is_really_cooooool
$decoded_data = decode($encoded_data, $key);
// abc abc 123 123
Eine andere Sache, dass jedes Mal, wenn ich verwenden diese Funktion braucht es die gleiche Sache jedes Mal, ich benutze die encode
Funktion mit dem gleichen Benutzerschlüssel zurückzukehren .
Wie würde ich das tun ??
Also hast du überhaupt über mcrypt (http://www.php.net/manual/en/mcrypt.examples.php) nachgedacht? Und lassen Sie das 'hash'-Tag fallen, weil Sie sagen, dass Sie __don't__ wollen einen Hash –
Ich habe eine [kleine Klasse] (http://stackoverflow.com/questions/15034368/cannot-decrypt-openssl-encrypt-output-on (Befehlszeile), die tun können, was Sie brauchen, aber die eigentliche Frage ist, warum Sie das Bedürfnis haben, die Daten jedes Benutzers einzeln zu verschlüsseln. Es wird allgemein angenommen, dass, sobald ein Angreifer Ihre gespeicherten Daten sehen kann, er auch Ihren Quellcode sehen kann, der die meisten Verwendungen der internen Verschlüsselung so gut wie möglich widerlegt. – Sammitch
@Sammitch In einigen Fällen ist es nützlich, wenn der Schlüssel zum Verschlüsseln/Entschlüsseln der Daten nirgends gefunden wird (und nur dem Benutzer gehört). Ich bin mir ziemlich sicher, dass LastPass das auch tut. – h2ooooooo