|
Iniciado por FX Sion, 25,mar. 2006 23:19 - 3 respuestas |
| |
| | | |
|
| |
Publicado el 25,marzo 2006 - 23:19 |
PCsoft a doté la fonction crypte d'une nouvelle contante cypteANSI permettant d'obtenir un cryptage analogue à celui de WINDEV.
Je ne parviens pas à obtenir un resultat correct. Avez vous testé cette nouvelle constante , |
| |
| |
| | | |
|
| | |
| |
Publicado el 30,junio 2006 - 18:17 |
J'essaie d'encoder en base64, mais je n'ai déjà pas les mêmes résultats en émulation que sur pocket. (évidemment, il faut transformer la chaine du pocket en ANSI ...) Et en comparant par rapport à un script sur une page web, aucun des 2 résultats ne serait correct.
phr64 = Crypte(buf,"",crypteAucun, vrai) ....
Quelqu'un aurait-il un début de piste.
J'essaie de coder les fonctions 'encode' 'decode' mais un autre problème se pose : comment fait-on pour faire un décalage de bits ( en C : MaVar >> 2) ??? (sinon toujours pareil, je transforme tout en binaire et je le fais moi-même)
Merci
"FX Sion" <xavier.sion@laposte.net> a écrit dans le message de news: 44259b9d$1@news.pcsoft.fr...
PCsoft a doté la fonction crypte d'une nouvelle contante cypteANSI permettant d'obtenir un cryptage analogue à celui de WINDEV.
Je ne parviens pas à obtenir un resultat correct. Avez vous testé cette nouvelle constante ,
|
| |
| |
| | | |
|
| | |
| |
Publicado el 27,agosto 2009 - 23:46 |
Cela fonctionne pour la fonction crypte. Nous avons bien maintenant la même chaine sur windows et windows mobile, mais cela ne fonctionne pas pour la fonction decrypte. Et cela me pose un gros pb. J'ai absolument besoin de cette fonction. C'est une contrainte du client. Quelqu'un a une idée ? J'ai essayer plein de chose mais ca ne fontionne pas |
| |
| |
| | | |
|
| | |
| |
Publicado el 28,agosto 2009 - 15:40 |
J'ai trouvé la solution sur un forum. La voici :
PROCEDURE Base64Decode(pData est chaîne) BASE64 est chaîne = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" TABLEAU_BASE64BIN est un tableau de 64 chaîne sur 6
Xlc_car est un caractère Xls_Bin est chaîne Xle_AscCode est entier sans signe sur 1 octet Xls_result est chaîne Xle_taille_pdata est entier Xle_taille_bin est entier i est entier
// création du tableau Binaire POUR i=1 A 64 TABLEAU_BASE64BIN[i] = DecToBin(i-1) FIN
// extrait le caractère et cherche sa correspondance valeur binaire/hexa Xle_taille_pdata = Taille(pData) i = 1 BOUCLE Xlc_car = Milieu(pData, i, 1) SI Position(BASE64, Xlc_car) <> 0 ALORS Xls_Bin += TABLEAU_BASE64BIN[Position(BASE64, Xlc_car)] FIN i++ SI i > Xle_taille_pdata ALORS SORTIR FIN
// prend la chaine binaire et recode le caractère en décimal Xle_taille_bin = Taille(Xls_Bin) i = 1 BOUCLE SI Taille(Milieu(Xls_Bin, i, 8 )) < 8 ALORS SORTIR SINON Xle_AscCode = BinToDec(Milieu(Xls_Bin, i, 8 )) Xls_result += Caract(Xle_AscCode) FIN i += 8 SI i > Xle_taille_bin ALORS SORTIR FIN
RENVOYER Xls_result
PROCEDURE BinToDec(CodeBin est chaîne) RENVOYER Val(CodeBin, 2)
PROCEDURE DecToBin(xlpar_binaire est entier) XL_reste est un booléen Xl_resultat est chaîne
TANTQUE xlpar_binaire <> 0 XL_reste = modulo(xlpar_binaire,2) Xl_resultat = XL_reste + Xl_resultat // renvoie uniquement partie entière xlpar_binaire = xlpar_binaire / 2 FIN Xl_resultat = Répète("0",6-Taille(Xl_resultat))+Xl_resultat
RENVOYER Xl_resultat |
| |
| |
| | | |
|
| | | | |
| | |
|