sarc
mercredi 9 janvier 2008 à 23:28
Borné, c'est-à-dire que le nombre a une limite supérieure (Par exemple si c'est un nombre compris entre 1 et 100) ou s'il peut atteindre de gros nombres, de façon aléatoire (5 430 459 099...)
Si ça reste relativement petit, tu peux très facilement noyer un nombre dans plein de caractères, et ce sans te faire remarquer (sauf si on donne l'algorithme en public, sur le Hub

)
Si ça peut être gros, ça devient plus difficile, parce que tu es limité à 10 caractères.
Je peux te proposer un petit truc, qui n'est pas digne de grands cryptologues, mais qui a le mérite d'être invisible pour toute personne qui n'est pas au courant que y'a un truc caché dedans.
CryptageTu prends un nombre $aléatoire entre 0 et 15, tu le convertis en hexadécimal.
De l'autre côté, tu convertis (le nombre + $aleatoire) que tu cryptes en héxadécimal aussi, et tu comptes le nombre de caractères que ça prend.
Ensuite, tu prends des lettres au hasard, comprises entre G et Z uniquement (Je prends que des X dans l'exemple suivant).
Tu crées la chaîne :
X + $nombre_en_hexa + X(...)X + $aleatoire + X
Avec un nombre de X au milieu tel que ça fasse 10 caractères au total. ($aleatoire en prendra 1, et je te demandais pour ton nombre s'il avait une limite supérieure, justement pour savoir quelle place il prend en hexa).
Tu peux mettre des majuscules et minuscules comme tu veux, pour noyer le poiscaille.
DécryptageAvec des substr bien placés, tu récupères l'avant dernier caractère $avantdernier, et du deuxième caractère jusqu'au moment où tu as une lettre supérieure à G ($nombrecrypte).
Ensuite tu repasses en base 10 les deux variables trouvées.
Puis tu fais la soustraction, pour récupérer le nombre de départ.
Ni vu ni connu... (ou presque)
Cette méthode te permet de crypter des nombres allant de 0 à 16^6 soit 16 777 216.
Elle peut être améliorée (mais en compliquant un peu ton algo).
Je suis désolé, ça oblige à coder, et c'est un peu porc. Mais au moins, c'est personnalisé à ton problème
EDIT :Si tu penses que c'est trop compliqué, tu peux juste coller deux variables en héxadécimal, du genre:
Cryptage$aleatoire = rand(0, 31);
$aleatoire_hexa = convert_base($aleatoire, 10, 16);
$nombre // nombre à crypter
$ajout_debut = convert_base($nombre+$aleatoire);
$cryptage = $ajout_debut.$aleatoire_hexa;
Décryptage$aleatoire_hexa = substr($cryptage, -2);
$nombre_aleatoire = convert_base($aleatoire_hexa, 16, 10);
$ajout_debut = substr($cryptage, 0, -2);
$ajout_base10 = convert_base($ajout_debut, 16, 10);
$nombre_a_trouver = $ajout_base10 - $nombre_aleatoire;