begin process at 2012 02 13 05:54:00
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité

 > ENCRYPTAGE/DECRYPTAGE

ENCRYPTAGE/DECRYPTAGE


 Information sur la source

Note :
7,52 / 10 - par 21 personnes
7,52 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité Classé sous :cryptage, decryptage, texte, xor Niveau :Initié Date de création :05/01/2000 Vu :15 056

Auteur : FlyKiller

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Le code se compose de deux fonctions publiques vous permettant d'encrypter et de décrypter un message. L'aspect intérressant réside dans le fait que vous pouvez crypter un message soit un nombre de fois, soit jusqu'à ce qu'il atteigne une certaine taille.

La méthode de cryptage est basée sur la conversion des caractères du code ASCII (8-bits) vers un autre dictionnaire (6-bits). Si vous avez des questions sur le code, n'hésitez pas à me contacter.

Sauvez le code dans un module et amusez-vous.

Source

  • Option Explicit
  • ' ****************************************************************************
  • ' *** Fonctions de cryptage/décryptage ******************************* 1.1 ***
  • ' ****************************************************************************
  • ' * N'hésitez pas à m'envoyer un mail si: *
  • ' * - Vous souhaitez me donnez vos impressions *
  • ' * - Vous avez envie de me faire partager des modifications de code que vous*
  • ' * auriez faites. *
  • ' ****************************************************************************
  • ' * AUTEUR: FlyKiller. *
  • ' ****************************************************************************
  • Private Const CodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/"
  • Public Enum CryptMethods
  • cmNumberOfTime
  • cmRaiseLenght
  • End Enum
  • Private Enum BitCoding
  • bc6Bits = 5
  • bc8Bits = 7
  • End Enum
  • ' ****************************************************************************
  • ' *** FUNCTION CryptMsg ******************************************************
  • ' *--------------------------------------------------------------------------*
  • ' * PARAMETRES: *
  • ' * - Msg: message à crypter. *
  • ' * - CryptMethod: spécifie si il faut crypter x fois (NumberOfTime) ou *
  • ' * jusqu'à ce que le message crypté arrive à une taille *
  • ' * limite (RaiseLength) *
  • ' * - CryptLimit: nombre de fois qu'il faut crypter (si NumberOfTime) ou *
  • ' * taille maximale que le message crypté ne peut dépasser *
  • ' * (si RaiseLength) *
  • ' *--------------------------------------------------------------------------*
  • ' * VALEURS RETOURNEES: *
  • ' * - Retour de la fonction: Message crypté. *
  • ' * - CryptLimit: Nombre de fois que le message a été réellement crypté. *
  • ' * (Utile pour décrypter le message s'il a été encrypté *
  • ' * plusieurs fois de suite) *
  • ' ****************************************************************************
  • Public Function CryptMsg(ByVal Msg As String, _
  • Optional ByVal CryptMethod As CryptMethods = cmNumberOfTime, _
  • Optional ByRef CryptLimit As Integer = 1) As String
  • Dim BS As String
  • Dim I As Integer
  • If CryptMethod = cmNumberOfTime Then
  • For I = 1 To CryptLimit
  • BS = GetBitString(Msg, bc8Bits)
  • Msg = GetConvertedString(BS, bc6Bits)
  • Next
  • CryptMsg = Msg
  • Else
  • I = 0
  • While Len(Msg) < CryptLimit
  • BS = GetBitString(Msg, bc8Bits)
  • Msg = GetConvertedString(BS, bc6Bits)
  • If Len(Msg) <= CryptLimit Then CryptMsg = Msg: I = I + 1
  • Wend
  • CryptLimit = I
  • End If
  • End Function
  • ' ****************************************************************************
  • ' *** FUNCTION UncryptMsg ****************************************************
  • ' ****************************************************************************
  • Public Function UncryptMsg(ByVal Msg As String, _
  • Optional ByVal UncryptRepeat As Integer = 1) As String
  • Dim BS As String
  • UncryptMsg = Msg
  • While UncryptRepeat > 0
  • BS = GetBitString(UncryptMsg, bc6Bits)
  • BS = Mid$(BS, 1, (Len(BS) \ 8) * 8)
  • UncryptMsg = GetConvertedString(BS, bc8Bits)
  • UncryptRepeat = UncryptRepeat - 1
  • Wend
  • End Function
  • ' ****************************************************************************
  • ' *** FUNCTION GetBitString **************************************************
  • ' ****************************************************************************
  • Private Function GetBitString(ByVal Msg As String, _
  • ByVal BitPerChar As BitCoding) As String
  • Dim LetterIdx As Integer
  • Dim AscLetter As Integer
  • Dim BitIdx As Integer
  • For LetterIdx = 1 To Len(Msg)
  • If BitPerChar = bc8Bits Then
  • AscLetter = Asc(Mid$(Msg, LetterIdx, 1))
  • Else
  • AscLetter = InStr(CodeChars, Mid$(Msg, LetterIdx, 1)) - 1
  • End If
  • For BitIdx = BitPerChar To 0 Step -1
  • If AscLetter And 2 ^ BitIdx Then
  • GetBitString = GetBitString & "1"
  • Else
  • GetBitString = GetBitString & "0"
  • End If
  • Next
  • Next
  • End Function
  • ' ****************************************************************************
  • ' *** FUNCTION GetConvertedString ********************************************
  • ' ****************************************************************************
  • Private Function GetConvertedString(ByVal BitString As String, _
  • ByVal BitPerChar As BitCoding) As String
  • Dim LetterIdx As Integer
  • Dim AscLetter As Integer
  • Dim BitIdx As Integer
  • For LetterIdx = 1 To Len(BitString) Step BitPerChar + 1
  • AscLetter = 0
  • For BitIdx = 0 To BitPerChar
  • If Mid$(BitString, LetterIdx + BitIdx, 1) = "1" Then
  • AscLetter = AscLetter Or (2 ^ (BitPerChar - BitIdx))
  • End If
  • Next
  • If BitPerChar = bc8Bits Then
  • GetConvertedString = GetConvertedString & Chr$(AscLetter)
  • Else
  • GetConvertedString = GetConvertedString & Mid$(CodeChars, AscLetter + 1, 1)
  • End If
  • Next
  • End Function
Option Explicit
' ****************************************************************************
' *** Fonctions de cryptage/décryptage ******************************* 1.1 ***
' ****************************************************************************
' * N'hésitez pas à m'envoyer un mail si:                                    *
' * - Vous souhaitez me donnez vos impressions                               *
' * - Vous avez envie de me faire partager des modifications de code que vous*
' *   auriez faites.                                                         *
' ****************************************************************************
' * AUTEUR: FlyKiller.                                                       *
' ****************************************************************************
Private Const CodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/"
Public Enum CryptMethods
  cmNumberOfTime
  cmRaiseLenght
End Enum
Private Enum BitCoding
  bc6Bits = 5
  bc8Bits = 7
End Enum

' ****************************************************************************
' *** FUNCTION CryptMsg ******************************************************
' *--------------------------------------------------------------------------*
' * PARAMETRES:                                                              *
' * - Msg: message à crypter.                                                *
' * - CryptMethod: spécifie si il faut crypter x fois (NumberOfTime) ou      *
' *                jusqu'à ce que le message crypté arrive à une taille      *
' *                limite (RaiseLength)                                      *
' * - CryptLimit: nombre de fois qu'il faut crypter (si NumberOfTime) ou     *
' *               taille maximale que le message crypté ne peut dépasser     *
' *               (si RaiseLength)                                           *
' *--------------------------------------------------------------------------*
' * VALEURS RETOURNEES:                                                      *
' * - Retour de la fonction: Message crypté.                                 *
' * - CryptLimit: Nombre de fois que le message a été réellement crypté.     *
' *               (Utile pour décrypter le message s'il a été encrypté       *
' *                plusieurs fois de suite)                                  *
' ****************************************************************************
Public Function CryptMsg(ByVal Msg As String, _
                         Optional ByVal CryptMethod As CryptMethods = cmNumberOfTime, _
                         Optional ByRef CryptLimit As Integer = 1) As String
Dim BS As String
Dim I As Integer

  If CryptMethod = cmNumberOfTime Then
    For I = 1 To CryptLimit
      BS = GetBitString(Msg, bc8Bits)
      Msg = GetConvertedString(BS, bc6Bits)
    Next
    CryptMsg = Msg
  Else
    I = 0
    While Len(Msg) < CryptLimit
      BS = GetBitString(Msg, bc8Bits)
      Msg = GetConvertedString(BS, bc6Bits)
      If Len(Msg) <= CryptLimit Then CryptMsg = Msg: I = I + 1
    Wend
    CryptLimit = I
  End If
End Function

' ****************************************************************************
' *** FUNCTION UncryptMsg ****************************************************
' ****************************************************************************
Public Function UncryptMsg(ByVal Msg As String, _
                Optional ByVal UncryptRepeat As Integer = 1) As String
Dim BS As String

  UncryptMsg = Msg
  While UncryptRepeat > 0
    BS = GetBitString(UncryptMsg, bc6Bits)
    BS = Mid$(BS, 1, (Len(BS) \ 8) * 8)
    UncryptMsg = GetConvertedString(BS, bc8Bits)
    UncryptRepeat = UncryptRepeat - 1
  Wend
End Function

' ****************************************************************************
' *** FUNCTION GetBitString **************************************************
' ****************************************************************************
Private Function GetBitString(ByVal Msg As String, _
                              ByVal BitPerChar As BitCoding) As String
Dim LetterIdx As Integer
Dim AscLetter As Integer
Dim BitIdx As Integer

  For LetterIdx = 1 To Len(Msg)
    If BitPerChar = bc8Bits Then
      AscLetter = Asc(Mid$(Msg, LetterIdx, 1))
    Else
      AscLetter = InStr(CodeChars, Mid$(Msg, LetterIdx, 1)) - 1
    End If
    For BitIdx = BitPerChar To 0 Step -1
      If AscLetter And 2 ^ BitIdx Then
        GetBitString = GetBitString & "1"
      Else
        GetBitString = GetBitString & "0"
      End If
    Next
  Next
End Function

' ****************************************************************************
' *** FUNCTION GetConvertedString ********************************************
' ****************************************************************************
Private Function GetConvertedString(ByVal BitString As String, _
                                    ByVal BitPerChar As BitCoding) As String
Dim LetterIdx As Integer
Dim AscLetter As Integer
Dim BitIdx As Integer

  For LetterIdx = 1 To Len(BitString) Step BitPerChar + 1
    AscLetter = 0
    For BitIdx = 0 To BitPerChar
      If Mid$(BitString, LetterIdx + BitIdx, 1) = "1" Then
        AscLetter = AscLetter Or (2 ^ (BitPerChar - BitIdx))
      End If
    Next
    If BitPerChar = bc8Bits Then
      GetConvertedString = GetConvertedString & Chr$(AscLetter)
    Else
      GetConvertedString = GetConvertedString & Mid$(CodeChars, AscLetter + 1, 1)
    End If
  Next
End Function



 Conclusion

(06-02-2000) Version 1.1: La fonction de décryptage ne fonctionnait pas quand on décryptait plusieurs fois de suite: c'est corrigé. Merci E. Coquinot.


 Sources du même auteur

Source avec Zip FWDP: USER-DEFINED PROPERTIES
Source avec Zip CATALOGUER UN DISQUE: FILESYSTEMOBJECT VS. FONCTION API
Source avec Zip AUDITEZ VOS DONNÉES SUR SQL SERVER
Source avec Zip FICHIERS RESOURCE EXTERNES
Source avec Zip REGOCX: UN REGSVR32 EN VISUAL BASIC

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) CHIFFREMENT XOR PLUS ROBUSTE par dheroux
Source avec Zip CRYPTAGE MARANT par alpha5
Source avec Zip ACCÈS PAR MOT DE PASSE À FEUILLE EXCEL par mimiZanzan
Source avec Zip CRYPTER-DÉCRYPTER UN TEXTE - TEXTE CRYPTÉ UNIQUEMENT EN MAJ... par Saintache
Source avec Zip Source avec une capture FOLDER PROTECTION par hackoo

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) CRYPTAGE ET DECRYPTAGE par jerichez
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTÉ/DÉCRYPTER UN TEXTE SELON UN CLÉ par Jeromedu79
LOGICIEL DE CRYPTAGE UTILISANT L'OPÉRATION XOR ET LA TABLE A... par jejedelajungle
Source avec Zip Source avec une capture CACHER MOT DE PASSE DANS BITMAP - STEGANOGRAPHIE par ym_trainz
Source avec Zip Source avec une capture Source .NET (Dotnet) ENCRYPTEUR (UTILISATION DU XOR) par mohman

Commentaires et avis

Commentaire de PtitJeoJeo le 05/02/2002 22:01:18

Tous ce que j'ai a dire c que moi j'en est créé un moi meme de prog de cryptage (pas de petit XOR tout pourris !! ) , hé ben mon gars si y en a un dans le monde qui arrive à décrypter le code c un mac et je le respecte !!!

Commentaire de Sylfeline le 14/05/2002 15:38:28

Message pour "PtitJeoJeo" : A Ce jour aucun système de cryptage n'est certifié inviolable à Travers le monde, Certain sont dit "inviolable" car avec la puissance des ordinateur actuel il faudrait plusieurs millénaires pour les décoder, MAIS il le disent, et non pas pas qu'il est vraiment indécrypatable. De plus si tu l'as fait en VB, c'est déjà raté d'office. mais envoi quand même soit tes sources, soit même un lien vers un Exe pour que l'on puisse tester ...

Commentaire de harddisk le 10/06/2002 11:05:55

je suis d'accord avec sylfeline, m^me pgp est potentiellement décryptable(Pretty Godd Privacy!!!).La nsa te décrypte à mon avis tout en 1 journée, si ce n'est en 12 heures et de toute facon, on peut mettre plein de pc en résaux pour calculer(comme le truc du seti@home). No is perfect

Commentaire de tmcuh le 21/01/2003 20:41:24

je rajouterer qu'ils ont même réussit à casser la clé de cryptage du mode RSA...en 1024 bits qui soit disant étais aussi inviolable... ;-)

Commentaire de tmcuh le 21/01/2003 20:47:05

Je confirme ce que dit Pirate, vous avez l'air de dire que c'est un gros nul n'empèche qu'il a raison. Chaque lettre ou chiffre est codé suivant le même critère il devient vite possible de crée une table et ainsi trouvé l'algorithme, un peu comme j'avais fais pourl le code d'écran de veille de windob!!

Commentaire de ryadh27 le 14/05/2003 19:13:16

J4AI UN PROBLEME J'ai acheter un pc portable et d'est que je demare il me demande un mot de passe pour continuer ?j'arrive meme pas a demarer sur msdos meme avec une disquette de boot????peut tu maider stp et me dire si il existe un programe pour decripter le mot de passe merci..pour ton aide ...

Commentaire de arrod le 10/08/2003 13:14:36

Hi ryadh27

sors ta facture il est dessus

bref de lol
Autremetn une piste :
il faut faire un reset du cmos bonne chance sur le démontage du portable

Commentaire de fraboulet le 17/09/2003 11:25:36

mon cher tmcuh, je ne sais pas d'où tu tire que le RSA 1024 bits a été cassé, mais certainement de tes rêves, la plus longue clé cassée aujourd'hui est de 532 bits. J'ai travaillé sur le RSA 1024 bits pendant 6 mois et je peux t'assurrer que tu fais fausse route!!(t gentil quand même)

Commentaire de amadi le 10/11/2003 19:40:10

C'est vrai, aucun code n'est inviolable c'est une question de temps et de patience à l'exception le codage quantique et encore ?
Dans tous les cas il faut respecter la production des autres.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Aider-moi (cryptage-décryptage de texte) [ par Quiske ] Salut tlm j'ai un bleme je fais un programme pour crypter et decrypter du texte:j'ai une textbox et 2 bouton je voudrais que en entrant un truc zarb c cryptage decryptage RSA cle prive cle publique [ par thierrydelepine ] bonjour,je cherche un code sample sur le cryptage decryptage RSA mais avec de grandes clés.j'ai testé les differentes sources de VBFrance mais les clé Cryptage [ par tinux ] Bonjour, je souhaite cr&#233;er un programme de cryptage/decryptage de texte en y inserant une clef. ==&gt; L'utilisateur rentre son texte, entre une Cryptage [ par tinux ] Bonjour, je suis en train de r&#233;aliser une appli contenant 2 textBox, 1 bouton. Le but de cet appli : =&gt; L'utilisateur rentre son texte ds text Cryptage/Decryptage [ par talking ] Voil&#224; bonjour tout le monde. Donc pour la s&#233;curit&#233; de mon programme, j'aimerais crypter la clef. Mais je ne sais pas quel bon algorythm probleme de decryptage [ par countag ] bonjour tous le monde, j ai un petit probleme de cryptage, j ai les sources d un programme dedans il y a un le decrypteur et je voudrai l utiliser po cryptage a la sortie et decryptage a l'entree ? [ par diablamanshadow ] bonsoir,voila j'aimerais savoir comment faire pour que quand je save du texte dans un fichier il crypte apres le fichier ou son contenu (j'avais pense cryptage et decryptage par une clé [ par idream000 ] bonjour je developpe une application monétaire en utilisant la plate-forme VB.net avec une base données SQLserveur. Avant d'enregistrer les données da Cryptage Decryptage Blowfish 128 bit VB"NET [ par serlep ] Bonjour, Je suis a convertir un programme Windev en VB.Net et je voudrais decrypter des données qui ont été crypter avec Windev suivant l'agorit brute force pour decrypter ? xor ou compression [ par pic22 ] Bonjour   <p class="MsoNormal" sty


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,382 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales