Различия между CAPICOM TripleDES и System.Security.Cryptography TripleDES - PullRequest
3 голосов
/ 20 июля 2010

Я пытаюсь отказаться от использования CAPICOM, поскольку я больше не могу его использовать (64-разрядная машина с Windows 7).

Существующий код для использования TripleDES выглядит следующим образом:

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);

Единственная информация, предоставляемая для шифрования, - это secretKey.И SecretKey получается около десяти байтов.Есть ли способ использовать класс .NET для того же шифрования.Примечание: это используется для проверки подключения к веб-службе, которая все еще будет использовать CAPICOM.Любая помощь или идеи с благодарностью.

Ответы [ 3 ]

1 голос
/ 18 апреля 2012

SetSecret не является ключом !!

от MSDN:

CAPICOM_SECRET_TYPE Перечисление

Перечисление CAPICOM_SECRET_TYPE указывает вид секрета, используемый для получения ключа, который будет использоваться для шифрования / дешифрования данных.

Константы CAPICOM_SECRET_PASSWORD Ключ шифрования должен быть получен из пароля.

0 голосов
/ 19 января 2012

Вы можете использовать CAPICOM из 32-битного процесса на 64-битной машине (очевидно).Если вы используете его из скрипта, вы должны использовать 32-битные версии cscript.exe и wscript.exe.Т.е.:

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

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

Это отлично работает, я делаю это прямо сейчас.

Также в этом ответе описано, как зарегистрировать суррогат для CAPICOM, чтобы его можно было использовать.из 64-битных процессов (включая 64-битный скрипт).

Я фактически сделал это, чтобы использовать CAPICOM из 64-битного SQL Server, и этоотлично работает.

0 голосов
/ 17 октября 2011

Не совсем ответ на ваш вопрос и он не идеален, но мы столкнулись с той же проблемой с CAPICOM и заставили его работать в 64-битном мире:

  • Скопируйте двоичный файл в [windows] \ syswow64
  • Зарегистрировать службу (запустить из этого пути, regsvr32 capicon.dll )
...