3

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 は約 10 バイトであることがわかります。.NET クラスを使用して同じ暗号化を行う方法はありますか。注: これは、引き続き CAPICOM を使用する Web サービスへの接続を確認するために使用されます。どんな助けやアイデアも大歓迎です。

4

3 に答える 3

1

SetSecret はキーではありません!!

MSDN から:

CAPICOM_SECRET_TYPE 列挙

CAPICOM_SECRET_TYPE 列挙は、データの暗号化/復号化に使用されるキーを導出するために使用されるシークレットの種類を示します。

定数 CAPICOM_SECRET_PASSWORD 暗号化キーはパスワードから導出されます。

于 2012-04-18T07:51:18.310 に答える
0

64 ビット マシン上の 32 ビット プロセスから CAPICOM を使用できます (当然のことです)。スクリプトから使用する場合は、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"

これは問題なく動作します。現在、本番環境で実行しています。

また、この回答には、64 ビット プロセス (64 ビット スクリプトを含む) から使用できるように、CAPICOM のサロゲートを登録する方法のウォークスルーがあります。

私は実際にこれを行って、64 ビット SQL Server から CAPICOM を使用しましたが、正常に動作しました。

于 2012-01-19T15:22:28.950 に答える
0

あなたの質問に対する正確な答えではなく、理想的でもありませんが、CAPICOM で同じ問題に遭遇し、次の方法で 64 ビットの世界で動作するようにしました。

  • バイナリを [windows]\syswow64 にコピーします
  • サービスを登録します (そのパス内から実行します、regsvr32 capicon.dll )
于 2011-10-17T09:28:47.533 に答える