CODE DECODE BASE64 (WIN32)

cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009 - 27 juin 2007 à 21:25
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009 - 30 juin 2007 à 10:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43268-code-decode-base64-win32

cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
30 juin 2007 à 10:24
Salut,

nickel ton code BruNews, par contre tu peux pas t'empêcher de mettres des ligne d'asm, lol
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
28 juin 2007 à 13:38
Quel intérêt d'adapter ton code alors que plusieurs sont disponibles ici même ?
En tout cas bravo quand même pour l'avoir écris en JS, ton code peut m'être utile également...
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 juin 2007 à 12:40
"adapter" ???
C'est typiquement ce qu'il ne faut jamais faire. Pour produire du natif efficace, on a un cahier des charges devant soi mais jamais un listing en interprété.
LleWellA Messages postés 37 Date d'inscription mardi 18 juin 2002 Statut Membre Dernière intervention 28 juin 2007
28 juin 2007 à 11:39
Bonjour,
Je me permet juste une petite intrusion pour signaler que j'ai fait une version de codage base64, qu'on peut trouver a cette adresse : http://www.javascriptfr.com/code.aspx?ID=15876.

Serait-il possible de l'adapter dans ta formule ?
Merci de jetter un oeil sur ce listing.
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
28 juin 2007 à 09:18
Ok je comprend, merci beaucoup ;-)
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 juin 2007 à 22:01
Le second est celui qu'utilise le decodage.

C'est mis dans ligne au dessus:
// on lira en: c = (pmem + 263772), sur 784800 (261000 * 3) octets
sur les 1024*1024 octets, j'en lis 784800 depuis le fichier qui sont mis à l'adresse (pmem + 263772). ça laisse de la marge partant de pmem où je place *d vu qu'on produit 4 octets partant de 3 originaux. Ainsi quand on arrive en fin d'octets encodés, il n'y a pas eu d'écrasement de données.
Dessine le schéma sur un papier pour visualiser le principe.
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
27 juin 2007 à 21:25
Salut
Merci pour le code BruNews, j'ai cependant quelques questions:
- tu utilises 2 tableaux pour les charset, a quoi correspond le deuxième ?
static BYTE cb64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
static BYTE cd64[] = "|$$$}rstuvwxyz{$$$$$$$>?@ABCDEFGHIJKLMNOPQRSTUVW$$$$$$XYZ[\\]^_`abcdefghijklmnopq";


pmem = (BYTE*) VirtualAlloc(0, 1024*1024, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
c = pmem + 263772;
n = (lensrc >= 784800) ? 784800: (DWORD) lensrc; // NE PLUS MODIFIER !!!

A quoi correspond 263772 ? Et 784800 ?
J'ai un peu de mal :$

Merci
Rejoignez-nous