Cryptage et décryptage des chaînes dans Excel
Je suis intéressé si c'est possible de faire de la chaîne de chiffrement/déchiffrement à l'aide d'Excel Visual Basic et certains de fournisseur de services cryptographiques.
J'ai trouvé une soluce Le cryptage et le Décryptage des Chaînes dans Visual Basicmais il semble que c'est valable pour les autonomes de Visual Basic.
Donc voulez-vous me suggérer une autre méthode de chiffrement ou de montrer comment la procédure pourrait être adoptée pour Excel Visual Basic?
source d'informationauteur Alexander Prokofyev
Vous devez vous connecter pour publier un commentaire.
Le lien que vous fournissez montre comment effectuer chaîne de chiffrement et de déchiffrement à l'aide de VB.NET et donc, en utilisant le .NET Framework.
Actuellement, les produits de Microsoft Office ne peut pas encore utiliser le Visual Studio Tools for Applications composant qui permettra aux produits de Bureau pour accéder à l' .NET framework de la BCL (base class libraries) qui, à son tour, l'accès à la sous-jacentes Windows CSP (cryptographic fournisseur de serveur) et de fournir une belle wrapper autour de ces fonctions de chiffrement/déchiffrement.
Pour le moment, les produits Office êtes coincé avec le vieux VBA (Visual Basic pour Applications) qui est basé sur l'ancien VB6 (et versions antérieures) de visual Basic qui sont fondés sur des COM, plutôt que de la .NET Framework.
À cause de tout cela, vous aurez besoin de faire appel à l'API Win32 pour accéder à la CSP fonctions, ou vous aurez à "rouler propre" méthode de chiffrement dans le plus pur VB6/VBA code, même si cela est susceptible d'être moins sûr. Tout dépend de comment "sécuriser" vous souhaitez que vos cryptage de.
Si vous voulez "rouler propre" chaîne de base de chiffrement/déchiffrement de la routine, de prendre un coup d'oeil à ces liens pour vous aider à démarrer:
Crypter une Chaîne de caractères Facilement
Mieux Cryptage XOR avec une chaîne lisible
vb6 - fonction de cryptage
Visual Basic 6 /VBA Chaîne de Chiffrement/Déchiffrement de la Fonction
Si vous souhaitez accéder à l'API Win32 et utiliser le Windows sous-jacent CSP (beaucoup plus sécurisé en option), voir ces liens pour obtenir des informations détaillées sur la façon de réaliser ceci:
Comment crypter une chaîne de caractères dans Visual Basic 6.0
L'accès à CryptEncrypt (CryptoAPI/WinAPI) fonctions en VBA
Que le dernier lien est probablement celui que vous voudrez et inclut un complet VBA module de Classe pour "envelopper" le fournisseur de Windows fonctions.
Créer un Module de Classe appelé clsCifrado:
Maintenant, vous pouvez l'utiliser dans votre code:
de chiffrement
Déchiffrer
Vous pouvez appeler pipe cellule excel, données à travers un script shell.
Installer le GPL Bert (http://bert-toolkit.com/) R la langue de l'interface pour Excel.
Utiliser le script R ci-dessous dans Excel pour tuyau de données de la cellule à Bash /perl /gpg /openssl.
Dans Excel, vous pouvez essayer: C1=CRYPTIT(A1,A2) et C2=DECRYPTIT(C1,A2)
En option: putclip enregistre déchiffré le texte dans le presse-papiers.
Les deux types de fonctions sont: String -> String.
Mises en garde habituelles au sujet d'échapper à des simples guillemets simples-chaînes entre guillemets.
Ici est une base symétrique de chiffrement/déchiffrement exemple:
Être conscient que cette plante si votre chaîne est plus longue que la SECRET_PASSWORD. C'est juste un exemple pour commencer avec.
Ce code fonctionne bien pour moi (3DES Cryptage/Décryptage):
Je magasin INITIALIZATION_VECTOR et TRIPLE_DES_KEY comme des variables d'environnement (évidemment, les différentes valeurs que celles posté ici), et le faire à l'aide de VBA Environ() de la fonction, de sorte que toutes les données sensibles (mots de passe) dans le code VBA est crypté.
Code Source prises à partir d'ici: https://gist.github.com/motoraku/97ad730891e59159d86c
Remarque la différence entre le code d'origine et mon code, c'est-à option supplémentaire encryption_object.Rembourrage = 3 qui forces VBA pour pas effectuer rembourrage. Avec un rembourrage option 3-je obtenir de résultat exactement comme en C++ mise en œuvre de DES_ede3_cbc_encrypt algorithme et qui est en accord avec ce qui est produit par cette outil en ligne.
Ce code fonctionne très bien en VBA et peut facilement être déplacé à VB.NET
Évite de se préoccuper de ne pas "normal" des personnages. Vous décidez dans AllowedChars quels sont les caractères de permettre à.