Comment créer deux façon de coder/décoder les méthodes d'utilisation spécifiques - clés PHP?
J'ai besoin de deux fonctions/méthodes, l'une d'encoder, de l'un à décoder. Ce n'est pas pour le stockage des mots de passe. Chaque utilisateur dispose d'une clé spécifique/sel pour coder les données.
C'est la façon dont je voudrais que cela fonctionne:
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
Une autre chose est que chaque fois que j'utilise cette fonction doit retourner la même chose à chaque fois que j'utilise le encode
fonction avec la même clé.
Comment puis-je faire??
Donc, avez-vous regardé mcrypt (php.net/manual/en/mcrypt.examples.php)? - Déposer le
J'ai un petite classe qui peut faire ce dont vous avez besoin, mais la vraie question est de savoir pourquoi vous vous sentez le besoin individuel de chiffrer les données de chaque utilisateur de manière indépendante. Il est généralement admis qu'une fois un attaquant peut voir vos données stockées ils peuvent aussi voir votre code source, ce qui invalide la plupart des utilisations de l'intérieur de chiffrement, aussi bien intentionnées qu'elles pourraient l'être.
Dans certains cas, il est utile que si la clé utilisée pour crypter/décrypter les données ne peuvent pas être trouvés n'importe où (et seulement appartient à l'utilisateur). Je suis assez sûr que LastPass fait aussi bien.
Parce que ce n'est pas pour l'utilisateur, mais pour les messages entre les utilisateurs. Ainsi, sur la base de données, il n'est pas données en texte brut.
J'ai, mais même avec la même clé, à chaque fois le résultat est différent.
hash
tag, parce que vous dites que vous ne pas vous voulez une table de hachageJ'ai un petite classe qui peut faire ce dont vous avez besoin, mais la vraie question est de savoir pourquoi vous vous sentez le besoin individuel de chiffrer les données de chaque utilisateur de manière indépendante. Il est généralement admis qu'une fois un attaquant peut voir vos données stockées ils peuvent aussi voir votre code source, ce qui invalide la plupart des utilisations de l'intérieur de chiffrement, aussi bien intentionnées qu'elles pourraient l'être.
Dans certains cas, il est utile que si la clé utilisée pour crypter/décrypter les données ne peuvent pas être trouvés n'importe où (et seulement appartient à l'utilisateur). Je suis assez sûr que LastPass fait aussi bien.
Parce que ce n'est pas pour l'utilisateur, mais pour les messages entre les utilisateurs. Ainsi, sur la base de données, il n'est pas données en texte brut.
J'ai, mais même avec la même clé, à chaque fois le résultat est différent.
OriginalL'auteur Jason Silberman | 2013-04-08
Vous devez vous connecter pour publier un commentaire.
De définir les principaux (sel, le bouillon, etc..):
$key = "#&$sdfdfs789fs7d";
À encoder:
À décoder:
Remarque: mcrypt_decrypt est obsolete depuis PHP 7.1.0. Sur la base de cette fonction est fortement déconseillée.
A”·fµŒ”÷Óÿ‰Zvÿ“õE¥‰¬DõØ&Hå§
. Quel est le problème?Donc, il décode et encode droit? De quoi êtes-vous le codage? texte brut? les données encodées devrait ressembler à quelque chose comme ceci:
VXHE0iM0bMXQecCAKYAzYZjy4gbctqLGQHYvW2cFhaE=
phpfiddle.org/lite/code/zj5-ic6
Douce, simple, un liner. Merci une tonne!! Cheers!! +1 🙂
mcrypt_encrypt / _decode sont obsolètes. Utilisation openssl_encrypt / _decrypt à la place. php.net/manual/en/function.openssl-encrypt.php
OriginalL'auteur rinchik