Explication de code Crypt

nounuo74 Messages postés 3 Date d'inscription dimanche 3 janvier 2010 Statut Membre Dernière intervention 16 septembre 2010 - 18 févr. 2010 à 11:23
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 18 févr. 2010 à 15:40
je vous demande de m'aider sur le code suivant avec un Explication aisse
*************************************le code***
Option Explicit

Private Const CodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/"
Public Enum CryptMethods
cmNumberOfTime
cmRaiseLenght
End Enum
Private Enum BitCoding
bc6Bits = 5
bc8Bits = 7
End Enum
Public Function CryptMsg(ByVal Msg As String, _
Optional ByVal CryptMethod As CryptMethods = cmNumberOfTime, _
Optional ByRef CryptLimit As Integer = 0) 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


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

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

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
********************************fin************

1 réponse

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
18 févr. 2010 à 15:40
BONJOUR aussi
Question trop vague.
Pose la question à l'auteur du code.
A chaque question sur une instruction, tape la touche F1 et regarge dans l'aide
Apprends à débugguer le code avec les touches F9 et F8.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0