Les codes barres postaux sont encodés d'une façon enfantine, à tel point que vous pouvez les déchiffrer de tête (si tant est que vous connaissez les 10 "symboles" représentant les 10 chiffres.
Bon, en temps normal, il n'y a donc que 5 chiffres (ex: 21500 <-- je ne sais pas où c'est, mais.. ça y est^^).
Bref, passons à la pratique :
Exemple :
|||..| ..|||| ..|||| |.|.|| ||..|| <-- 75009
Il y a donc : des "pipes", des points, et des espaces. Notez que parfois (souvent d'ailleurs) les points sont remplacés par des espaces.
Ce qui donnerait ceci :
||| | |||| |||| | | || || || <-- 75009
Vous noterez qu'on respecte bien un espace entre chaque chiffre. Que le chiffres "chiffrés" soient constitués de points ou d'espaces.
Je vous donne désormais la table (sous la forme originale et sous la forme classique) :
original:
classic:
Vous faites désormais la correspondance entre mon premier exemple :
|||..| ..|||| ..|||| |.|.|| ||..|| <-- 75009
ou
||| | |||| |||| | | || || || <-- 75009
Et la table de correspondance que je viens de vous donner.
Là vous vous dites : SAKAROV, tu dors pas assez, tu l'as foutu à l'envers ! Eh beh !!! Quelle perspicacité !!! C'est exact
Pourquoi ? Tout simplement car ils sont lus de droite à gauche (des arabes ? ^^)
Donc en lors du décryptage, il faut lire de droite à gauche ; mais faut aussi parfois tester de gauche à droite ! Pourquoi ? Parce-que des petits malins les foutent à l'envers
12345 donnera :
original form. from right to left
|.|.|| |..||| .|||.| .||.|| .|.|||
reversed form. from left to right.
.|.||| .||.|| .|||.| |..||| |.|.||
classic form. from right to left
| | || | ||| ||| | || || | |||
classic form. from left to right.
| ||| || || ||| | | ||| | | ||
Bien entendu, on se fout de combien de chiffres sont rentrés en input. Cette technique est bien évidemment utilisée pour cacher des chiffres, pas des codes postaux^^
Maintenant, quelques exemples, pour le fun :
Original:
|.|.|| .|||.| .|.||| <-- 135
Classic:
| | || ||| | | ||| <-- 135
De gauche à droite (original):
.|.||| .|||.| |.|.|| <-- 135
De gauche à droite (classic):
| ||| ||| | | | || <-- 135 (notez bien qu'on garde l'espace initital. Si on avait ça : []..| (où []=espace, .=espace, |=|) ça donnerait, décollé du chevron d'un espace : > | <-- soit trois espaces
Un dernier, un gros, pour la route :
10293847561234509876
ça nous donne :
original (droite à gauche donc) :
|.||.| ||..|| ||.|.| |||..| ..|||| |.|.|| |..||| .|||.| .||.|| .|.||| |.||.| |.|.|| ||..|| |..||| ||.|.| .|||.| |||..| .||.|| ..|||| .|.|||
classic (sans les points, et donc toujours de droite à gauche) :
| ||| |||| || || ||| | ||| | || | | | ||| || || | | || | || | | ||| || || ||| | | ||| | | || |||| ||| | || | | || || | || |
De gauche à droite (original):
[B]
.|.||| ..|||| .||.|| |||..| .|||.| ||.|.| |..||| ||..|| |.|.|| |.||.| .|.||| .||.|| .|||.| |..||| |.|.|| ..|||| |||..| ||.|.| ||..|| |.||.|
De gauche à droite (classic):
[B][B]
[B] | ||| |||| || || ||| | ||| | || | | | ||| || || | | || | || | | ||| || || ||| | | ||| | | || |||| ||| | || | | || || | || |
Vous avez donc bien repéré que chaque numéro = 6 caractères (espaces, pipes et points) et sont toujours espacés d'un espace.
NOTE : si vous ne comptez pas 6 caractères en début de ligne, c'est à cause de vBulletin qui les ferre à gauche. Interprétez donc un espace sur la gauche, en début de ligne, s'il n'y a que 5 caractères avant le premier espace.
Bon, en temps normal, il n'y a donc que 5 chiffres (ex: 21500 <-- je ne sais pas où c'est, mais.. ça y est^^).
Bref, passons à la pratique :
Exemple :
|||..| ..|||| ..|||| |.|.|| ||..|| <-- 75009
Il y a donc : des "pipes", des points, et des espaces. Notez que parfois (souvent d'ailleurs) les points sont remplacés par des espaces.
Ce qui donnerait ceci :
||| | |||| |||| | | || || || <-- 75009
Vous noterez qu'on respecte bien un espace entre chaque chiffre. Que le chiffres "chiffrés" soient constitués de points ou d'espaces.
Je vous donne désormais la table (sous la forme originale et sous la forme classique) :
original:
Code:
..|||| <-- 0 .|.||| <-- 1 .||.|| <-- 2 .|||.| <-- 3 |..||| <-- 4 |.|.|| <-- 5 |.||.| <-- 6 ||..|| <-- 7 ||.|.| <-- 8 |||..| <-- 9
Code:
|||| <-- 0 | ||| <-- 1 || || <-- 2 ||| | <-- 3 | ||| <-- 4 | | || <-- 5 | || | <-- 6 || || <-- 7 || | | <-- 8 ||| | <-- 9
|||..| ..|||| ..|||| |.|.|| ||..|| <-- 75009
ou
||| | |||| |||| | | || || || <-- 75009
Et la table de correspondance que je viens de vous donner.
Là vous vous dites : SAKAROV, tu dors pas assez, tu l'as foutu à l'envers ! Eh beh !!! Quelle perspicacité !!! C'est exact
Pourquoi ? Tout simplement car ils sont lus de droite à gauche (des arabes ? ^^)
Donc en lors du décryptage, il faut lire de droite à gauche ; mais faut aussi parfois tester de gauche à droite ! Pourquoi ? Parce-que des petits malins les foutent à l'envers
12345 donnera :
original form. from right to left
|.|.|| |..||| .|||.| .||.|| .|.|||
reversed form. from left to right.
.|.||| .||.|| .|||.| |..||| |.|.||
classic form. from right to left
| | || | ||| ||| | || || | |||
classic form. from left to right.
| ||| || || ||| | | ||| | | ||
Bien entendu, on se fout de combien de chiffres sont rentrés en input. Cette technique est bien évidemment utilisée pour cacher des chiffres, pas des codes postaux^^
Maintenant, quelques exemples, pour le fun :
Original:
|.|.|| .|||.| .|.||| <-- 135
Classic:
| | || ||| | | ||| <-- 135
De gauche à droite (original):
.|.||| .|||.| |.|.|| <-- 135
De gauche à droite (classic):
| ||| ||| | | | || <-- 135 (notez bien qu'on garde l'espace initital. Si on avait ça : []..| (où []=espace, .=espace, |=|) ça donnerait, décollé du chevron d'un espace : > | <-- soit trois espaces
Un dernier, un gros, pour la route :
10293847561234509876
ça nous donne :
original (droite à gauche donc) :
|.||.| ||..|| ||.|.| |||..| ..|||| |.|.|| |..||| .|||.| .||.|| .|.||| |.||.| |.|.|| ||..|| |..||| ||.|.| .|||.| |||..| .||.|| ..|||| .|.|||
classic (sans les points, et donc toujours de droite à gauche) :
| ||| |||| || || ||| | ||| | || | | | ||| || || | | || | || | | ||| || || ||| | | ||| | | || |||| ||| | || | | || || | || |
De gauche à droite (original):
[B]
.|.||| ..|||| .||.|| |||..| .|||.| ||.|.| |..||| ||..|| |.|.|| |.||.| .|.||| .||.|| .|||.| |..||| |.|.|| ..|||| |||..| ||.|.| ||..|| |.||.|
De gauche à droite (classic):
[B][B]
[B] | ||| |||| || || ||| | ||| | || | | | ||| || || | | || | || | | ||| || || ||| | | ||| | | || |||| ||| | || | | || || | || |
Vous avez donc bien repéré que chaque numéro = 6 caractères (espaces, pipes et points) et sont toujours espacés d'un espace.
NOTE : si vous ne comptez pas 6 caractères en début de ligne, c'est à cause de vBulletin qui les ferre à gauche. Interprétez donc un espace sur la gauche, en début de ligne, s'il n'y a que 5 caractères avant le premier espace.