Bonsoir,
Je constate qqchose de très étrange sur les fonctions HPasse() et HChangeMotdePasse().
Bon déjà, en préalable, signalons que les mots de passe sur les fichiers ne sont pas sensibles à la casse, ce qui fait que a et A c'est la même chose dans un mot de passe.
Mais passons.
Non, le plus étrange est le suivant :
pour la 1ère lettre du mot de passe, un autre caractère que le caractère défini dans le mot de passe (par la fonction HChangeMotDePasse par exemple) peut faire l'affaire.
Mais pas n'importe lequel.
Pour la lettre "a", "$" fait aussi bien l'affaire.
Pour la lettre "b", "%" marche aussi.
Pour être clair : si on définit "aa" comme mot de passe sur un fichier Hyperfile,
"$a" pourra aussi permettre d'accéder au fichier (et cela que ce soit avec les fonctions H... ou directement en ouvrant le fichier dans WDMap)
Si on regarde la table des caractères Ascii, on se rend compte qu'il y a un décalage de 29 entre le "$" et le A (ou de 61 entre le "$" et le a).
Ca a l'air d'être valable pour les caractères ASCII entre 32 et 64. C'est-à-dire que n'importe quel caractère de cette plage est équivalent, dans le mot de passe, avec les caractères qui on un numéro ASCII supérieur de 29.
Ca n'est apparemment valable que pour le 1er caractère du mot de passe.. mais sait-on jamais, peut être le décalage est il différent ensuite ?
Je ne suis pas un grand spécialiste de l'encodage de caractères, mais je ne sais pas vous, mais moi, quand je tape un "a" dans un mot de passe, je m'attends à ce que ce soit un uniquement un "a" qui soit accepté
N'hésitez pas à me faire part de vos réactions.
Cdlt, Arnaud.
Partager