Ho bisogno di due funzioni/metodi, uno per la codifica, uno per la decodifica. Questo non è per memorizzare le password. Ogni utente avrà una chiave/sale specifica per codificare i dati.Come creare metodi di codifica/decodifica bidirezionali usando la chiave specifica per l'uso - PHP?
Questo è quanto vorrei farlo funzionare:
function 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
Un'altra cosa è che ogni volta che uso questa funzione deve restituire la stessa cosa ogni volta che uso la funzione encode
con la stessa chiave dell'utente .
Come faccio?
Quindi hai guardato a mcrypt (http://www.php.net/manual/en/mcrypt.examples.php)? E rilascia il tag 'hash', perché dici che __non vuoi un hash –
Ho una [piccola classe] (http://stackoverflow.com/questions/15034368/cannot-decrypt-openssl-encrypt-output-on -command-line) che può fare ciò di cui hai bisogno, ma la vera domanda è perché senti la necessità di criptare individualmente i dati di ciascun utente in modo indipendente. In genere si presume che una volta che un utente attaccato può vedere i dati memorizzati, può anche vedere il codice sorgente che invalida la maggior parte degli usi della crittografia interna, per quanto intenzionati a farlo. – Sammitch
@Sammitch In alcuni casi è utile se la chiave utilizzata per crittografare/decrittografare i dati non può essere trovata da nessuna parte (e appartiene solo all'utente). Sono abbastanza sicuro che LastPass fa anche questo. – h2ooooooo