Cryptofile : utilitaire qui crypte n'importe quel fichier (xor)

Soyez le premier à donner votre avis sur cette source.

Vue 10 509 fois - Téléchargée 1 028 fois

Description

Voila ... Tout est dans le titre ...
A part une chose : Il est possible de l'utiliser en mode console ou en GUI

Syntaxe : CryptoFile.exe
/UI - Le met en mode GUI

Source / Exemple :


Attribute VB_Name = "mod_Crypto"
'#######################################################
'################## XOR Crypto Module ##################
'######## Originally Created by Philippe Huysmans ######
'########### And Improved by Guillaume Huysmans ########
'#######################################################
'############# Created the January 13, 2007 ############
'#######################################################
'## URL : http://www.vbfrance.com/code.aspx?ID=41187 ###
'#######################################################

Option Explicit

Public Function Crypto(Text As String, Key As String) As String
 Dim i As Integer
 Dim tmp As String
 Dim pK As Integer
 Dim lT As Integer, lK As Integer
 Dim aT As Integer, aK As Integer
 lT = Len(Text)
 lK = Len(Key)
 For i = 1 To lT
  pK = pK + 1
  If pK > lK Then pK = 1
  aT = Asc(Mid(Text, i, 1))
  aK = Asc(Mid(Key, pK, 1))
  tmp = tmp & Chr(aT Xor aK)
 Next i
 Crypto = tmp
End Function

Public Sub CryptoFile(SourceFile As String, Key As String, DestFile As String)
 Dim i As Integer
 Dim pK As Integer
 Dim lT As Integer, lK As Integer
 Dim aT As Integer, aK As Integer
 mod_File.ReadFile SourceFile
 lT = UBound(mod_File.bytes)
 lK = Len(Key)
 For i = 1 To lT
  pK = pK + 1
  If pK > lK Then pK = 1
  aT = mod_File.bytes(i)
  aK = Asc(Mid(Key, pK, 1))
  mod_File.bytes(i) = (aT Xor aK)
 Next i
 
 '(Re)Write the file
 mod_File.WriteFile DestFile
End Sub

Codes Sources

Ajouter un commentaire Commentaires
Messages postés
2493
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
1
Je vais vite changer ça demain ...
Messages postés
2493
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
1
Merci !
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
1. ok

2.je te donne un exemple de code si ça peut t'aider :

Private Const BUFFER_SIZE = 8192' Taille du tapon (perso)
Private Function CryptFile( _
InputFile As String, _
OutputFile As String, _
Key As String _
) As Boolean
On Error GoTo Error_Handler
Dim Fr As Long, Fw As Long, Rest As Long
Dim Packets As Long, fLength As Long
Dim Buffer As String, i As Long

Fr = FreeFile
Open InputFile For Binary Access Read As #Fr
Fw = FreeFile
Open OutputFile For Binary Access Read As #Fw
fLength = FileLen(InputFile)

If fLength > BUFFER_SIZE Then

Rest = fLength Mod BUFFER_SIZE
Packets = ((fLength - Rest) / BUFFER_SIZE)
For i = 1 To Packets
Buffer = String(BUFFER_SIZE, 0)
Get #Fr, , Buffer
Buffer = TaFonctionDeCrypatge(Buffer, Key)
Put #Fw, , Buffer
Next i
If Rest > 0 Then
Buffer = String(Rest, 0)
Get #Fr, , Buffer
Buffer = TaFonctionDeCrypatge(Buffer, Key)
Put #Fw, , Buffer
End If
Else
Buffer = String(fLength, 0)
Get #Fr, , Buffer
Buffer = TaFonctionDeCrypatge(Buffer, Key)
Put #Fw, , Buffer
End If
CryptFile = True

Error_Handler:
Reset
End Function

3. Ce que que je voulais dire c'est que dans ton prog tu met la fonction Crypto à laquelle tu ne fait pas appele car tu retape le code lié à cette fonction dans CrypoFile

4. Cela l'est pour toi mais pas pour les newb's, une source même la plus simple se commente. D'ailleurs c'est tellement plus facile à commenter qu'une source de nv3 =)

5. Je m'excuse je crois que j'ai été un peu "..." je ne suis pas trop pour les commentaires à caractères péjoratifs d'habitude, mais plutot pour ceux constructifs...

Voila, sur ce, bonne prog @+
Messages postés
2493
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
1
1: Oui, mais j'ai voulu en faire une moi-même ...
2: Oui, mais comment faire autrement ?
3: A crypter une string
4: C'est tellement simple ...
5: Bonne idée !
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
Humm...

1. Il y a déjà un paquet de sources idem sur ce site

2. "UTILITAIRE QUI CRYPTE N'IMPORTE QUEL FICHIER (XOR)" <<== le problème c'est que ton prog charge la totalité des bytes du fichier en mémoire, de ce fait si tu ouvre un fichier d'une taille plus importante que celle de ta mémoire dispo, la lecture des bytes passe en fichier d'échange et c le plantage assuré de l'appli (saturation mémoire).

3. A quoi sert la fonction Crypto ?

4. Ta source n'est pas commentée.

Tu peux l'améliorer en lui apportant une fonction de vérification de la clé et/ou une fonction de vérification des données (style CRC)
Pense aussi aux gros fichiers en travaillant la lecture/écriture par paquets.

Bonne prog @+
Afficher les 6 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.