2010-06-02 6 views
2

Vous cherchez des fonctions de cryptage intégrées, pas pour cacher la chaîne du programmeur intelligent, mais plutôt pour l'obfusciter un peu. Vous cherchez des fonctions telles que str_rot13 et base64_encode, mais je n'arrive pas à en trouver. Sûrement il y en a plus?Quelles sont les fonctions PHP de "cryptage"?

+0

Combien en avez-vous besoin? J'utilise typiquement base64 pour obscurcir quelque chose que quelqu'un regardant par-dessus mon épaule ne peut pas le lire, comme 'password = base64_decode ('bXkgcGFzc3dvcmQ =');' –

+0

@Johannes, c'est pourquoi j'ai mis le 'encryption' dans les guillemets;) – Rob

+0

@Johannes: Rot-13 est un encodage. Le cryptage nécessite une clé. –

Répondre

1

Pour un chiffrement réel, mcrypt est la solution. Pour l'obfuscation, une troisième fonction est uuencode; voici un code pour le décodage; l'encodage implique l'inversion de l'ordre.

$text = str_rot13($text); 
$text = base64_decode($text); 
$text = convert_uudecode($text); 

Notez que base64_encode et convert_uudecode augmentent la taille des données.

3

Vous voudrez peut-être regarder la famille de fonctions mcrypt. Il peut crypter et décrypter en utilisant une variété d'algorithmes.

-3

Vous cherchez des algorithmes d'obfuscation, pas des algorithmes de chiffrement?

Base 64 et mcrypt sont les plus faciles à encoder rapidement. Si vous cherchez l'obscurcissement, utilisez-les.

Base 64 et Rot 13 ne sont pas cryptés car ils peuvent facilement être codés et décodés.

Les fonctions d'cryptage sont plus proches de md5, sha1 et crypt. MD5 est considéré comme "cassé" donc, vous devez utiliser sha1 pour le cryptage, ou au moins salir votre MD5 lors du hachage.

http://ca2.php.net/md5

http://ca3.php.net/sha1

http://ca3.php.net/manual/en/function.crypt.php

+0

Notez que les fonctions has mentionnées ici (md5, sha1) sont à sens unique; Une fois codés, ils ne peuvent pas être décodés. – eykanal

+6

Oh sheesh y'all, ** encryption! = Hashing! = Encoding ** ... les fonctions que vous avez listées (MD5, SHA1 et crypt) sont des fonctions de hachage/digestion, pas des fonctions de cryptage. Le cryptage implique que l'entrée d'origine peut être décryptée de façon déterministe à partir du message crypté en utilisant une clé. L'encodage est simplement une transformation d'un format de message à un autre. –

1

Si vous avez seulement besoin d'obscurcir un peu peu, essayez la fonction strtr(). Il existe pour échanger des caractères dans une chaîne - parfait pour rendre un texte traduisible ... mais pas lisible.

Exemple rapide:

<?php 
$mytext="obfuscate me"; 
$obfuscated = strtr($mytext,"aeiourstlne","rstlneaeiou"); 
echo $obfuscated; /* Output is lbfnacreu mu */ 
?> 

Quelques lectures complémentaires here.

Questions connexes