N-PN White-Hat Project
[C] Cesar chiffrement (+3) - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72)
+--- Forum : Langages compilés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=25)
+--- Sujet : [C] Cesar chiffrement (+3) (/showthread.php?tid=2201)



[C] Cesar chiffrement (+3) - sakiir - 23-09-2012

[léger edit de Khaled]

Plop,
Et voila un petit code qui chiffre/encode le premier argument donné Smile

[de khaled]
Le chiffrement nécessite une clé (peu importe la notion d'asymétrique ou symétrique, la question n'est pas là)
L'encodage stocke les données sous une forme différente.
Le code de césar ayant besoin d'une clé, il est couramment mis dans la section chiffrement, mais étant donné la faiblesse de la clé (512 dans cet exemple qui utilise la table ASCII) certain (comme Ark) le considère comme un encodage, dissuadant ceux qui ne connaise pas l'analyse des fréquences des caractères dans une langue donné, mais n'étant pas un "réel" chiffrement.
[/khaled]

"Cesar oui cette encryptions décal de 3 Caractères dans la table ASCII Chaque Caractères de la chaine donné ."

Ce code utilise le chiffrement de César en utilisant une clé positif de 3, ce qui décale de 3 caractères chaque caractère de la chaine donnée en fonction de sa place dans la table ASCII.

Lien externe
http://fr.wikipedia.org/wiki/Chiffrement_par_décalage
http://www.dcode.fr/code-cesar
http://www.cryptage.org/chiffre-cesar.html

Soit :
Code PHP :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argcchar *argv[]){
    if(
argc != 2){
    
printf("Usage : %s <STRING>\n",argv[0]);
    }else{
unsigned char TAILLE strlen(argv[1]);
char PHRASE[TAILLE];int i;

strcpy(PHRASE,argv[1]);
printf("[+] Avant : %s\n",PHRASE);
/*************Crypto**************/

for(i=0;i!=TAILLE;i++){
PHRASE[i]=PHRASE[i]+3;//+3 dans la table ASCII
if(PHRASE[i]>127){//Si on est au dernier caractere de la table
PHRASE[i]=PHRASE[i]-96;  
}

}


/********************************/
printf("[+] Après : %s\n",PHRASE);
 }
return 
0;


@+


RE: [C] Cesar Encryption (+3) - Swissky - 23-09-2012

Merci sa peut servir Smile


RE: [C] Cesar Encryption (+3) - InstinctHack - 24-09-2012

je plussoie Swissky Smile


RE: [C] Cesar Encryption (+3) - ark - 24-09-2012

Hé, j'peux faire chier ? Big Grin
On dit 'Ce chiffrement' ou 'Cet encodage' Big Grin

Sinon, oui, ça peut toujours servir, m'enfin s'pas dur a coder Wink


RE: [C] Cesar Encryption (+3) - InstinctHack - 24-09-2012

T'as pas tort Ark :>


RE: [C] Cesar Encryption (+3) - Di0Sasm - 24-09-2012

On dit chiffrement, donc à modifier.


RE: [C] Cesar chiffrement (+3) - Creepy_p0ney - 14-10-2012

Tu connasi les vidéos de bjornulf ?


RE: [C] Cesar chiffrement (+3) - aulos7 - 14-10-2012

C'est sympa mais c'est dommage de restreindre à "+3" je trouve.

J'avais fait un truc en python dans le même genre il y a quelques temps.

Code :
# fonction permettant d'encoder une chaine à partir de la clé k
def encode_cesar(k,liste_inita,alphabet):

    a = 0
    i = 0
# boucle durant jusqu'à la fin de la chaine
    while a < len(liste_inita):
        i = alphabet.index(liste_inita[a])
# évite les erreurs d'index et de fin d'alphabet
        if k + i >= 23:
            c = 0
            c = (k+i) - 25
            liste_inita[a] = alphabet[c]
        else:
            i = alphabet.index(liste_inita[a])
            liste_inita[a] = alphabet[i + k]
        a+=1
    return liste_inita

a = 0
x = ''
list_init = list()
#list_init = ['z','y','x','d','e','g']
alphabet = ['a','b','c','d','e','f','g','h','i','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
print("Entrez le mot que vous desirez crypter en mettant un espace entre chaque lettre  puis appuyez sur entrée.\n")
x = input()
list_init = x.split(" ")
print("Entrez maintenant la clé k de cryptage")
k = input()
k = int(k)

retour = encode_cesar(k,list_init,alphabet)
print(list_init)

input("Appuyez sur entree pour quitter ! ")

( lien pastebin )


RE: [C] Cesar chiffrement (+3) - Luxerails - 14-10-2012

Un peu longue ta fonction césar...

Code :
def encode_cesar(text, key):
    strout = ''
    for letter in text:
        strout += chr(((ord(letter) - ord('A') + key) % 26) + ord('A'))
    return strout

print encode_cesar("CODECESAR", 7)
// JVKLJLZHY

PS: on dit "chiffrer" pas "crypter"


RE: [C] Cesar chiffrement (+3) - aulos7 - 14-10-2012

Je me disais bien qu'il était possible de faire quelque chose de plus concis mais je pense qu'il me manque des connaissances surtout.
Dommage que je ne fasse plus de python maintenant Sad


RE: [C] Cesar chiffrement (+3) - sakiir - 14-10-2012

Oui c'est avec les videos de bjornulf que j'ai progressé en C