2010-07-20 29 views
3

J'essaie de ne plus utiliser CAPICOM car je ne peux plus l'utiliser (machine Windows 7 64 bits).Différences entre CAPICOM TripleDES et System.Security.Cryptography TripleDES

Le code existant pour l'utilisation TripleDES est comme ceci:

EncryptedDataClass cryptic = new EncryptedDataClass(); 
cryptic.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM.CAPICOM_ENCRYPTION_ALGORITHM_3DES; 
cryptic.SetSecret(secretKey, CAPICOM_SECRET_TYPE.CAPICOM_SECRET_PASSWORD); 
cryptic.Content = stringToEncrypt; 
encryptedString = cryptic.Encrypt(CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_ANY); 

Les informations fournies uniquement pour le chiffrement est le secretKey. Et le secretKey sort d'environ dix octets. Est-il possible d'utiliser la classe .NET pour faire le même chiffrement. Remarque: ceci est utilisé pour vérifier la connexion à un service Web qui utilisera toujours CAPICOM. Toute aide ou idée sont grandement appréciées.

+0

l'avez-vous résolu? J'ai le même problème .... –

+0

N'a jamais été en mesure de résoudre ce problème. Le client a décidé de garder l'ancienne boîte noire dll en place. – Posthuma

+0

@ user821181, voir ma réponse ci-dessous. – Ben

Répondre

0

Pas exactement la réponse à votre question et n'est idéal, mais nous avons atteint le même problème avec CAPICOM et ai eu à travailler dans le monde 64bit par:

  • Copiez le binaire [windows] \ syswow64
  • Enregistrez le service (exécuté à partir de ce chemin, regsvr32 capicon.dll)
+0

Cela fonctionnerait. Mais, j'essayais de mettre en œuvre avec les outils de cryptage .NET et de travailler avec l'ancienne DLL CAPICOM. – Posthuma

0

Vous pouvez utiliser CAPICOM d'un processus 32 bits sur une machine 64 bits (évidemment). Si vous l'utilisez du script, vous devez utiliser les versions 32 bits de cscript.exe et wscript.exe. I.e:

c:\windows\sysWOW64\cscript.exe "c:\path\to\script.wsf" 

c:\windows\sysWOW64\cscript.exe "c:\path\to\another\vbscript.vbs" 

Cela fonctionne très bien, je le fais en production dès maintenant.

En outre, cette réponse propose une procédure pas à pas pour enregistrer un substitut pour CAPICOM afin de pouvoir l'utiliser à partir de processus 64 bits (y compris un script 64 bits).

J'ai effectivement fait cela à utiliser CAPICOM de 64 bits SQL Server et il fonctionne très bien.

1

SetSecret n'est pas une clé !!

de MSDN:

CAPICOM_SECRET_TYPE Enumeration

L'énumération CAPICOM_SECRET_TYPE indique le genre de secret utilisé pour obtenir une clé à utiliser pour le chiffrement/déchiffrement des données.

Constantes CAPICOM_SECRET_PASSWORD La clé de chiffrement doit être dérivée d'un mot de passe.