Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai un soucis pour le décryptage de mes mots de passe. J'ai utilisé les fonctions encrypt et decrypt suivantes et il n'arrive pas a décrypter correctement les mots de passe, bien que j'ai donné les clés identiques. La fonction decrypt me retourne le message : ** Encryption Error. J'ai essayé de l'analyser et la tester mais elle m'affiche toujours de message. J'aimerais savoir si quelqu'un a une idée.
Merci d'avance
fonction encrypt (string as_str) return string
integer i, j string ls_enctext = "" CONSTANT string CRYPT_KEY = "$#@%&#%@&*" j = len(as_str) FOR i = 1 TO j ls_enctext += mid(CRYPT_KEY , mod(i,10) + 1, 1) ls_enctext += String(Char(255 - Asc(Mid(as_str, i, 1)))) NEXT RETURN ls_enctext
fonction decrypt ( string as_str ) return string
integer i, j string ls_encchar, ls_temp, ls_unasstr = "** Encryption Error" boolean lb_ok = true CONSTANT string CRYPT_KEY = "$#@%&#%@&*" j = len(as_str) IF NOT Mod(j, 2) = 1 THEN ls_temp = "" FOR i = 2 TO (j + 1) STEP 2 ls_encchar = Mid(as_str, i - 1, 1) IF mid(CRYPT_KEY, Mod(i / 2, 10) + 1, 1) <> ls_encchar THEN lb_ok = FALSE EXIT END IF ls_encchar = Mid(as_str, i, 1) ls_temp += string(char(255 - asc(ls_encchar))) NEXT END IF IF lb_ok THEN ls_unasstr = ls_temp RETURN LS_UNASSTR
Dernière modification par patricktobou (09-05-2009 12:30:27)
Hors ligne
Message de modération
[EDIT]
Merci pour la correction, mais la balise est sans espaces.
Je corrige...
Dernière modification par foon (09-05-2009 18:56:43)
Hors ligne
Bonjour,
Ces fonctions ont été écrites pour des versions non unicode de Powerbuilder (char(255 - ...).
Pour les versions à partir de la 10, PB Travaille en UNICODE. Pour conserver la compatibilité avec ce type de fonctions, il faut remplacer les fonctions char, asc ... qui travaille en unicode par leur équivalent ANSI :
Char => CharA
Asc => AscA
....
Hors ligne
Bonsoir Buck,
En effet je travaille sur la version 11.1 Build 8123 sous Windos XP
J'ai modifié les fonctions Asc en AscA et Char en CharA et le message "** Encryption Error" apparaît toujours lors du décryptage du mot de passe. Peut être ya t-il encore d'autres fonctions qu'il faut modifier. je suis encore novice en Powerbuilder.
Merci
Hors ligne
Il faut aussi modifier la fonction Mid -> MidA
J'ai testé les deux fonction et cela fonctionne avec la version 10.5 de PB.
Alfonso.
Hors ligne