285 votes

Le cryptage bidirectionnel le plus simple en PHP

Quel est le moyen le plus simple de réaliser un cryptage à double sens dans les installations PHP courantes ?

Je dois pouvoir crypter des données avec une clé de type chaîne et utiliser la même clé pour décrypter à l'autre bout.

La sécurité n'est pas une préoccupation aussi importante que la portabilité du code, et j'aimerais donc pouvoir garder les choses aussi simples que possible. Actuellement, j'utilise une implémentation RC4, mais si je peux trouver quelque chose de supporté nativement, je pense que je peux économiser beaucoup de code inutile.

7 votes

3 votes

Pour un chiffrement à usage général, utilisez defuse/php-encryption/ au lieu d'en faire un.

3 votes

Mains éloignées de github.com/defuse/php-encryption - il est plus lent de plusieurs ordres de grandeur que Mcrypt.

4voto

kasp3r Points 319

Je suggère d'utiliser mcrypt . Vous pouvez trouver le manuel et les exemples dans la section des commentaires.

3voto

Eugene Fidelin Points 326

IMPORTANT Cette réponse n'est valable que pour PHP 5. En PHP 7, vous pouvez utiliser les fonctions cryptographiques intégrées.

Voici une mise en œuvre simple mais suffisamment sûre :

  • Cryptage AES-256 en mode CBC
  • PBKDF2 pour créer une clé de cryptage à partir d'un mot de passe en texte clair.
  • HMAC pour authentifier le message crypté.

Le code et les exemples sont ici : https://stackoverflow.com/a/19445173/1387163

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X