PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 08-05-2009 16:54:57

patricktobou  
Membre Geek
Lieu: Cameroun
Date d'inscription: 31-10-2008
Messages: 57
Pépites: 309
Banque: 0

Probleme de cryptage de chaine

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

Code: pb

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

Code: pb

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

 

#2 08-05-2009 18:46:18

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: Probleme de cryptage de chaine

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)


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 11-05-2009 06:06:55

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Probleme de cryptage de chaine

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

 

#4 12-05-2009 17:06:46

patricktobou  
Membre Geek
Lieu: Cameroun
Date d'inscription: 31-10-2008
Messages: 57
Pépites: 309
Banque: 0

Re: Probleme de cryptage de chaine

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

 

#5 25-01-2012 10:36:16

perroneal  
Nouveau membre
Date d'inscription: 25-01-2012
Messages: 1
Pépites: 3
Banque: 0

Re: Probleme de cryptage de chaine

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

 

Pied de page des forums

Propulsé par FluxBB 1.2.22