Quelqu'un pourrait-il suggérer comment je peux obtenir un style de chiffrement de substitution? crypter et décrypter la fonction dans VBA. J'apprécie que le hachage soit considéré comme le meilleur moyen mais j'ai besoin d'un cryptage réversible. Merci beaucoup.MS Access Chiffrement de substitution VBA Crypter/Déchiffrer
Répondre
Un grand merci pour toutes les réponses fournies en référence à ma question, c'est bien de voir qu'il y a différentes approches, j'en ai codé une hier matin. Il permet d'utiliser un mot-clé/une expression de chiffrement différent pour les deux lettres &. J'ai utilisé des 'Zebras' dans cet exemple, et un second passage avec le chiffre ROT13. Méthode de chiffrement:
Public Function Encrypt(strvalue As String) As String
Const LowerAlpha As String = "abcdefghijklmnopqrstuvwxyz"
Const LowerSub As String = "zebrascdfghijklmnopqtuvwxy" 'zebras
Const UpperAlpha As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Const UpperSub As String = "ZEBRASCDFGHIJKLMNOPQTUVWXY" 'ZEBRAS
Dim lngi As Long
Dim lngE As Long
Dim strEncrypt As String
Dim strLetter As String
If strvalue & "" = "" Then Exit Function
For lngi = 1 To Len(strvalue)
strLetter = Mid(strvalue, lngi, 1)
Select Case Asc(strLetter)
Case 65 To 90 'Uppercase
'Find position in alpha string
For lngE = 1 To Len(UpperAlpha)
If Mid(UpperAlpha, lngE, 1) = strLetter Then GoTo USub
Next
USub:
strEncrypt = strEncrypt & Mid(UpperSub, lngE, 1)
Case 97 To 122 'Lowercase
'Find position in alpha string
For lngE = 1 To Len(LowerAlpha)
If Mid(LowerAlpha, lngE, 1) = strLetter Then GoTo LSub
Next
LSub:
strEncrypt = strEncrypt & Mid(LowerSub, lngE, 1)
Case Else 'Do not substitute
strEncrypt = strEncrypt & strLetter
End Select
Next
'Now pass this string through ROT13 for another tier of security
For lngi = 1 To Len(strEncrypt)
Encrypt = Encrypt & Chr(Asc(Mid(strEncrypt, lngi, 1)) + 13)
Next
End Function
Et c'est le Decryption qui va avec:
Public Function Decrypt(strvalue As String) As String
Const LowerAlpha As String = "abcdefghijklmnopqrstuvwxyz"
Const LowerSub As String = "zebrascdfghijklmnopqtuvwxy" 'zebras
Const UpperAlpha As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Const UpperSub As String = "ZEBRASCDFGHIJKLMNOPQTUVWXY" 'ZEBRAS
Dim lngi As Long
Dim lngE As Long
Dim strDecrypt As String
Dim strLetter As String
If strvalue & "" = "" Then Exit Function
'Reverse the ROT13 cipher
For lngi = 1 To Len(strvalue)
strDecrypt = strDecrypt & Chr(Asc(Mid(strvalue, lngi, 1)) - 13)
Next
'Now reverse the encryption
For lngi = 1 To Len(strDecrypt)
strLetter = Mid(strDecrypt, lngi, 1)
Select Case Asc(strLetter)
Case 65 To 90 'Uppercase
'Find position in sub string
For lngE = 1 To Len(UpperSub)
If Mid(UpperSub, lngE, 1) = strLetter Then GoTo USub
Next
USub:
Decrypt = Decrypt & Mid(UpperAlpha, lngE, 1)
Case 97 To 122 'Lowercase
'Find position in sub string
For lngE = 1 To Len(LowerSub)
If Mid(LowerSub, lngE, 1) = strLetter Then GoTo LSub
Next
LSub:
Decrypt = Decrypt & Mid(LowerAlpha, lngE, 1)
Case Else 'Do not substitute
Decrypt = Decrypt & strLetter
End Select
Next
End Function
J'espère que le codage est très simple à suivre pour ceux qui n'ont pas une grande expérience avec le codage VBA et il peut être soulevé directement de la page; mais encore merci pour toutes les autres réponses.
C'est très faible (excuse de) un cryptage ridicule. Essayez quelque chose de plus fort comme RC4 qui peut être implémenté dans moins de lignes de code. Voir ici: http://stackoverflow.com/questions/7025644/vb6-encrypt-text-using-password – wqw
J'apprécie Sub Ciphers sont assez vieux maintenant et pas considéré comme le meilleur, mais j'avais juste besoin de quelque chose de simple pour cette affaire, vous avez pour admettre cependant, cette chaîne cryptée a l'air plutôt cool "S € 4 -XY^-x, ~ -zRrur € r | - € pz -px" - "px-" | - ~ | zVV † -z ~ | 9- r € -r - =, ~ -p => | " Si quelqu'un a le temps de le décrypter, j'aimerais voir à quel point c'est facile. :) –
Vous pouvez utiliser Blowfish. Il y a une version Visual Basic 6 qui fonctionne dans Access, disponible ici:
http://www.di-mgt.com.au/cryptoBlowfishVer6.html
Vous pouvez également essayer TwoFish.
- 1. Substitution CAST pour MS Access
- 2. MS Access code VBA
- 3. MS ACCESS vba select
- 4. Ms Access: VBA combobox
- 5. MS ACCESS vba - erreur
- 6. MS Access VBA Fonction pour
- 7. Ms Access AddItem avec VBA
- 8. Import append vba MS-Access
- 9. MS Access VBA vide TextBox
- 10. MS Access 2010 vba query
- 11. Format MS Access VBA Excel
- 12. Incrément ID # MS Access VBA
- 13. Chiffrement de substitution simple
- 14. Problème de sous-formulaire ms access vba
- 15. Erreur de fonction MS Access VBA DLookup
- 16. Ms Access VBA Filtre de date
- 17. Exécution Excel VBA à partir de MS Access VBA
- 18. Table MS Access Link avec VBA
- 19. MS Access VBA Sélectionnez la requête
- 20. La syntaxe correcte pour MS Access VBA
- 21. arguments multiples ISNULL MS Access VBA
- 22. Pourquoi mon VBA pour MS Access Buggy?
- 23. Erreur MS Access VBA Compile sur "x ="
- 24. MS Access VBA fonctionnant avec AbsolutePosition
- 25. Actualiser MS Access Query (code VBA)
- 26. VBA MS-Access: erreur_formulaire vs erreur
- 27. Contrôle d'onglet MS Access VBA Q
- 28. MS Access texte d'importation VBA fichier
- 29. MS Access VBA en utilisant l'opérateur IN
- 30. MS Access VBA DSUM Critères multiples
Vous n'en avez pas déjà un [que vous avez essayé de publier] (http://stackoverflow.com/questions/8534659/vba-ms-access-substitution-cipher)? – Deanna
@Deanna Comme Jean l'a dit je l'ai posté plus tôt, mais ignoré les règles de débordement de la pile im désolé de le dire, c'est mieux car les gens offrent des réponses et d'autres peuvent le trouver dans le futur par une recherche google –