Accueil > > > ENCRYPTAGE/DECRYPTAGE
ENCRYPTAGE/DECRYPTAGE
Information sur la source
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
Sources de la même categorie
Commentaires et avis
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éer un programme de cryptage/decryptage de texte en y inserant une clef. ==> L'utilisateur rentre son texte, entre une
Cryptage [ par tinux ]
Bonjour, je suis en train de réaliser une appli contenant 2 textBox, 1 bouton. Le but de cet appli : => L'utilisateur rentre son texte ds text
Cryptage/Decryptage [ par talking ]
Voilà bonjour tout le monde. Donc pour la sécurité 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
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
LISTER KEYS.KEYLISTER KEYS.KEY par Onin42
Cliquez pour lire la suite par Onin42
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|