Logiciel de cryptage utilisant l'opération xor et la table ascii complete

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 233 fois - Téléchargée 19 fois

Contenu du snippet

Ces un logiciel que j'ai finaliser il y a peu, Pour toutes critiques, idée d'améliorations ou autres remarques envoyez moi un mail: jejedelajungle@hotmail.fr
Ce logiciel ne peut être casser par brute force je crois, car il ne vérifie pas que le mot de passe est correct, puisque celui si n'est pas stocker, ni en clair ni en forme Hasher.
Plus le mot de passe est long mieux est l'encryption.

Source / Exemple :


DECLARE FUNCTION exist (name$)
DECLARE SUB logo ()
CLS
IF COMMAND$ <> "" THEN name$ = COMMAND$
IF name$ = "" THEN
CALL logo
0 : LOCATE 5, 2: INPUT "Nom du fichier:", name$
END IF
verif = exist(name$): IF verif = 0 THEN GOTO 0
2 : LOCATE 7, 2: INPUT "Mot de passe:", password$: IF LEN(password$) > 0 AND LEN(password$) < 6 THEN GOTO 2
nbrep = 0: nbp = LEN(password$)

OPEN name$ FOR BINARY AS #1
taille = LOF(1)

FOR a = 1 TO taille
IF nb = nbp THEN nb = 0
nb = nb + 1

IF LEN(password$) = 0 THEN
clef = a
ELSE
clef = ASC(MID$(password$, nb, 1)) + a
END IF

coder = ASC(INPUT$(1, #1)) XOR clef MOD 255

code$ = CHR$(coder)
position = SEEK(1) - 1
PUT #1, position, code$
LOCATE 8, 2: PRINT ABS(INT(LOC(1) / LOF(1) * 100)); "%"

NEXT a

CLOSE #1
LOCATE 9, 2: PRINT "Nombre de r&#8218;p&#8218;tition du mot de passe:"; ABS(INT(taille / nbp))
SLEEP 5: RESET: CLEAR : END

FUNCTION exist (name$)
OPEN name$ FOR BINARY AS #1: t1 = LOF(1): CLOSE #1

IF t1 = 0 THEN
IF t1 = 0 THEN KILL name$
exist = 0
END IF
IF t1 <> 0 THEN
exist = 1
END IF

END FUNCTION

SUB logo ()
LOCATE 1, 2: PRINT "Programme de cryptage CSSC V2:"
LOCATE 2, 2: PRINT "(C)Copyright 2000/2010. CSSC. INK"
LOCATE 3, 2: PRINT "ALL RIGHTS RESERVED"
SLEEP 4
END SUB

A voir également

Ajouter un commentaire Commentaires
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
"Ce logiciel ne peut être casser par brute force je crois"
Non mais à la limite c'est pas très grave, puisqu'il s'agit d'un Vigenère binaire (ça rime !) sur 8 bits, et en tant que tel il peut être cassé à la main par n'importe qui en quelques minutes si le texte est suffisamment long (plus long que la clef).

Cordialement, Bacterius !
Messages postés
134
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
24 octobre 2010

... les fameux "blocs à usage unique" ... effecttivement, sans valise diplomatique... lol.
Messages postés
147
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
15 avril 2011

C'est sûr ! Cette idée à déjà était utilisé sous l'empire Soviétique et était très efficace. Mais le problème quand tu as deux pages de mot de passe, c'est qu'il faut les cacher à leurs tours. Au final, bien qu'indéchiffrable, le système a été abandonné, car trop encombrant et pas assez pratique.
Messages postés
134
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
24 octobre 2010

L'idéal serait une clef aléatoire de la taille du fichier...
Messages postés
147
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
15 avril 2011

Salut à tous !

En effet, ce code « résiste » à une Bruteforce, mais par contre il ne résistera pas à une inversion du cryptage. Puisque le XOR est réversible, ce cryptage aussi.

Pour rappel : 0 XOR 0 0 ; 0 XOR 1 1 ; 1 XOR 0 = 1 ; 1 XOR 1 = 0

Tout fichier possède un en-tête qui permet d’enregistrer les paramètres courant/classique du format. Seul certains fichiers texte (*.txt) n’en possèdent pas. Bien que les octets d’entête ne soient pas figés, les 5 à 10 premiers sont quasiment toujours statiques.

Si l’on applique un XOR entre un fichier cryptée et un fichier non cryptée du même format, on obtient le mot de passe en clair dans l’en-tête.

Pour réglé ce défaut, il faudrait avoir un mot de passe dont la taille serait au moins deux fois supérieur à celle de l’en-tête.

Cordialement,
S Nikator.
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.