[Java] outil de cryptage bidon

Huntil Message lu Posté le 19 Oct 2008 à 19:14 Bulle
Avatar de Huntil
Modérateur

Messages : 1012
GCPoints : 289843

Citation :

Le cryptage d'une chaîne de caractères s'effectue selon le procédé suivant:

- chaque caractère de la chaîne est remplacé par a position dans l'alphabet (2 chiffres: A devient 01). ex: ALGO devient 01120715
- on construit ensuite la chaîne miroir par paire de caractères. ex: ALGO devient 15071201
- le caractère d'espacement est codé 00
- la casse n'est pas pris en compte

1) écrire une fonction positionDeLettre retournant l'entier correspondant à la position d'une lettre donnée dans l'alphabet, puis lettreEnPosition retournant la lettre situé à une position donnée de l'alphabet.



(je rappelle que mon niveau en programmation est très faible)
La première idée qui me vient à l'esprit c'est de faire un tableau de char avec toutes les lettres de l'alphabet + le caractère d'espacement. Ensuite je récupère l'indice est si il est inférieur à 10 je rajoute un zéro devant. J'ai codé ça à l'arrache et ça fonctionne.
Je me demandais si on était obligé de déclarer tout le tableau "à la main" ou si il était possible d'utiliser une boucle, vu que je ne sais pas trop comment sont codés les caractères ?

Dernière édition le 19 Oct 2008 à 19:50
Copyright © 2007 - 2010 Huntil
"Il faut toujours un drame"
chaos Message lu Posté le 19 Oct 2008 à 20:09 Bulle
Avatar de chaos
Explorateur

Messages : 127
GCPoints : 11604
je te conseil de lire ceci http://www.commentcamarche.net/contents/video/huffman.php3 par contre il te faudrat quelques base sur les arbres binaires mais rien de méchant.
"c'est un fait, on obtient plus facilement en demandant poliment une arme a la main qu'en demandant juste poliment."
http://www.doujin-spirit.net/
Mod Message lu Posté le 19 Oct 2008 à 20:19 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823
Sachant que le code ASCII du 'A' est 65, si tu veux récupérer simplement le numéro 1, il suffit d'y soustraire 64. Pour le 'a', qui est codé 97 en ASCII, je te laisse faire le calcul ;).
Huntil Message lu Posté le 19 Oct 2008 à 21:00 Bulle
Avatar de Huntil
Modérateur

Messages : 1012
GCPoints : 289843
merci Mod :smile:
Par contre je vois pas trop pourquoi tu me met un lien vers le codage de Huffman, chaos :P Ca à l'air pratique pour compresser des données, mais honnêtement je ne vois pas à quoi ça va me servir
Copyright © 2007 - 2010 Huntil
"Il faut toujours un drame"
chaos Message lu Posté le 20 Oct 2008 à 12:55 Bulle
Avatar de chaos
Explorateur

Messages : 127
GCPoints : 11604
effectivement j'ai lu entre les lignes et trop vite désolé ^^'.
"c'est un fait, on obtient plus facilement en demandant poliment une arme a la main qu'en demandant juste poliment."
http://www.doujin-spirit.net/
Darktib Message lu Posté le 20 Oct 2008 à 16:27 Bulle
Avatar de Darktib
Membre Ultime

Messages : 4017
GCPoints : 347288
Vaut mieux pas commencer a l'indice 65 sauf si tu veux les indices des chiffres négatifs.
Le 0 a pour indice 48.

Apres générer une tablea ASCII n'est pas compliqué... 8 lignes de codes en dbp (15 en C/C++).
La voici :

Spoiler - Cliquez pour afficher
Caractère n°0 :
Caractère n°1 : 
Caractère n°2 : 
Caractère n°3 : 
Caractère n°4 : 
Caractère n°5 : 
Caractère n°6 : 
Caractère n°7 : 
Caractère n°8 : 
Caractère n°9 :
Caractère n°10 :

Caractère n°11 :
Caractère n°12 :
Caractère n°13 :

Caractère n°14 : 
Caractère n°15 : 
Caractère n°16 : 
Caractère n°17 : 
Caractère n°18 : 
Caractère n°19 : 
Caractère n°20 : 
Caractère n°21 : 
Caractère n°22 : 
Caractère n°23 : 
Caractère n°24 : 
Caractère n°25 : 
Caractère n°26 : 
Caractère n°27 : 
Caractère n°28 : 
Caractère n°29 : 
Caractère n°30 : 
Caractère n°31 : 
Caractère n°32 :
Caractère n°33 : !
Caractère n°34 : "
Caractère n°35 : #
Caractère n°36 : $
Caractère n°37 : %
Caractère n°38 : &
Caractère n°39 : '
Caractère n°40 : (
Caractère n°41 : )
Caractère n°42 : *
Caractère n°43 : +
Caractère n°44 : ,
Caractère n°45 : -
Caractère n°46 : .
Caractère n°47 : /
Caractère n°48 : 0
Caractère n°49 : 1
Caractère n°50 : 2
Caractère n°51 : 3
Caractère n°52 : 4
Caractère n°53 : 5
Caractère n°54 : 6
Caractère n°55 : 7
Caractère n°56 : 8
Caractère n°57 : 9
Caractère n°58 : :
Caractère n°59 : ;
Caractère n°60 : <
Caractère n°61 : =
Caractère n°62 : >
Caractère n°63 : ?
Caractère n°64 : @
Caractère n°65 : A
Caractère n°66 : B
Caractère n°67 : C
Caractère n°68 : D
Caractère n°69 : E
Caractère n°70 : F
Caractère n°71 : G
Caractère n°72 : H
Caractère n°73 : I
Caractère n°74 : J
Caractère n°75 : K
Caractère n°76 : L
Caractère n°77 : M
Caractère n°78 : N
Caractère n°79 : O
Caractère n°80 : P
Caractère n°81 : Q
Caractère n°82 : R
Caractère n°83 : S
Caractère n°84 : T
Caractère n°85 : U
Caractère n°86 : V
Caractère n°87 : W
Caractère n°88 : X
Caractère n°89 : Y
Caractère n°90 : Z
Caractère n°91 : [
Caractère n°92 :
Caractère n°93 : ]
Caractère n°94 : ^
Caractère n°95 : _
Caractère n°96 : `
Caractère n°97 : a
Caractère n°98 : b
Caractère n°99 : c
Caractère n°100 : d
Caractère n°101 : e
Caractère n°102 : f
Caractère n°103 : g
Caractère n°104 : h
Caractère n°105 : i
Caractère n°106 : j
Caractère n°107 : k
Caractère n°108 : l
Caractère n°109 : m
Caractère n°110 : n
Caractère n°111 : o
Caractère n°112 : p
Caractère n°113 : q
Caractère n°114 : r
Caractère n°115 : s
Caractère n°116 : t
Caractère n°117 : u
Caractère n°118 : v
Caractère n°119 : w
Caractère n°120 : x
Caractère n°121 : y
Caractère n°122 : z
Caractère n°123 : {
Caractère n°124 : |
Caractère n°125 : }
Caractère n°126 : ~
Caractère n°127 : 
Caractère n°128 : €
Caractère n°129 : 
Caractère n°130 : ‚
Caractère n°131 : ƒ
Caractère n°132 : „
Caractère n°133 : …
Caractère n°134 : †
Caractère n°135 : ‡
Caractère n°136 : ˆ
Caractère n°137 : ‰
Caractère n°138 : Š
Caractère n°139 : ‹
Caractère n°140 : Œ
Caractère n°141 : 
Caractère n°142 : Ž
Caractère n°143 : 
Caractère n°144 : 
Caractère n°145 : ‘
Caractère n°146 : ’
Caractère n°147 : “
Caractère n°148 : ”
Caractère n°149 : •
Caractère n°150 : –
Caractère n°151 : —
Caractère n°152 : ˜
Caractère n°153 : ™
Caractère n°154 : š
Caractère n°155 : ›
Caractère n°156 : œ
Caractère n°157 : 
Caractère n°158 : ž
Caractère n°159 : Ÿ
Caractère n°160 :  
Caractère n°161 : ¡
Caractère n°162 : ¢
Caractère n°163 : £
Caractère n°164 : ¤
Caractère n°165 : ¥
Caractère n°166 : ¦
Caractère n°167 : §
Caractère n°168 : ¨
Caractère n°169 : ©
Caractère n°170 : ª
Caractère n°171 : «
Caractère n°172 : ¬
Caractère n°173 : ­
Caractère n°174 : ®
Caractère n°175 : ¯
Caractère n°176 : °
Caractère n°177 : ±
Caractère n°178 : ²
Caractère n°179 : ³
Caractère n°180 : ´
Caractère n°181 : µ
Caractère n°182 : ¶
Caractère n°183 : ·
Caractère n°184 : ¸
Caractère n°185 : ¹
Caractère n°186 : º
Caractère n°187 : »
Caractère n°188 : ¼
Caractère n°189 : ½
Caractère n°190 : ¾
Caractère n°191 : ¿
Caractère n°192 : À
Caractère n°193 : Á
Caractère n°194 : Â
Caractère n°195 : Ã
Caractère n°196 : Ä
Caractère n°197 : Å
Caractère n°198 : Æ
Caractère n°199 : Ç
Caractère n°200 : È
Caractère n°201 : É
Caractère n°202 : Ê
Caractère n°203 : Ë
Caractère n°204 : Ì
Caractère n°205 : Í
Caractère n°206 : Î
Caractère n°207 : Ï
Caractère n°208 : Ð
Caractère n°209 : Ñ
Caractère n°210 : Ò
Caractère n°211 : Ó
Caractère n°212 : Ô
Caractère n°213 : Õ
Caractère n°214 : Ö
Caractère n°215 : ×
Caractère n°216 : Ø
Caractère n°217 : Ù
Caractère n°218 : Ú
Caractère n°219 : Û
Caractère n°220 : Ü
Caractère n°221 : Ý
Caractère n°222 : Þ
Caractère n°223 : ß
Caractère n°224 : à
Caractère n°225 : á
Caractère n°226 : â
Caractère n°227 : ã
Caractère n°228 : ä
Caractère n°229 : å
Caractère n°230 : æ
Caractère n°231 : ç
Caractère n°232 : è
Caractère n°233 : é
Caractère n°234 : ê
Caractère n°235 : ë
Caractère n°236 : ì
Caractère n°237 : í
Caractère n°238 : î
Caractère n°239 : ï
Caractère n°240 : ð
Caractère n°241 : ñ
Caractère n°242 : ò
Caractère n°243 : ó
Caractère n°244 : ô
Caractère n°245 : õ
Caractère n°246 : ö
Caractère n°247 : ÷
Caractère n°248 : ø
Caractère n°249 : ù
Caractère n°250 : ú
Caractère n°251 : û
Caractère n°252 : ü
Caractère n°253 : ý
Caractère n°254 : þ
Caractère n°255 : ÿ


PS : si ca déconne... ca prouvera que les nav ne supportent pas bien l'ASCII^^
Dernière édition le 23 Nov 2008 à 20:16
gouessej Message lu Posté le 26 Nov 2008 à 11:40 Bulle
Membre Avancé

Messages : 337
GCPoints : 64624
J'ai déjà codé plusieurs algorithmes de cryptage et de compression en Java (pour un TP noté en master), tu veux mon code source?
Huntil Message lu Posté le 26 Nov 2008 à 12:23 Bulle
Avatar de Huntil
Modérateur

Messages : 1012
GCPoints : 289843
Oui, ça peut être intéressant :smile:
Copyright © 2007 - 2010 Huntil
"Il faut toujours un drame"
gouessej Message lu Posté le 27 Nov 2008 à 20:10 Bulle
Membre Avancé

Messages : 337
GCPoints : 64624
Shannon-Fano et Huffman en Java :
http://membres.lycos.fr/javalution/download/huffman.zip
Huntil Message lu Posté le 27 Nov 2008 à 20:25 Bulle
Avatar de Huntil
Modérateur

Messages : 1012
GCPoints : 289843
Merci. C'est pas encore exactement de mon niveau, mais je vais faire en sorte que se ça le soit sous peu :wink:
Copyright © 2007 - 2010 Huntil
"Il faut toujours un drame"
gouessej Message lu Posté le 28 Nov 2008 à 13:37 Bulle
Membre Avancé

Messages : 337
GCPoints : 64624
De rien. De toute façon, ce n'est qu'un exercice, il y a déjà ce qu'il faut dans le Java de base pour compresser sans devoir réinventer l'eau chaude. Pour ce TP noté, j'avais dû me creuser pas mal le ciboulot, le professeur avait dit que ce serait bien plus facile de le coder en OCaml ou en C/C++, j'ai réussi à faire plus court ET en Java :lol: (si ça se trouve, un meilleur codeur que mon prof aurait fait encore plus court en C). De toute façon, il faut bien commencer par quelque chose, n'hésite pas à me poser des questions si tu ne comprends pas ce que j'ai fait. Il me semble que j'ai commenté le code.
Dernière édition le 28 Nov 2008 à 13:38
Huntil Message lu Posté le 28 Nov 2008 à 13:40 Bulle
Avatar de Huntil
Modérateur

Messages : 1012
GCPoints : 289843
En effet, il y a un ou deux commentaires qui se baladent :P
Copyright © 2007 - 2010 Huntil
"Il faut toujours un drame"
Répondre
GameCorp - Site d'apprentissage et d'entraide à la création de jeux vidéo.
XHTML Valid 1.1 - Page générée en 0.0658 secondes