CAPICOMを介してデータを暗号化し、データベースに保存するClassicASPで記述されたアプリケーションがあります。暗号化コードは次のようになります(クラシックASP、VB。簡潔にするために少し簡略化)。
set encryptObject = Server.CreateObject("CAPICOM.EncryptedData")
encryptObject.Algorithm.Name = 4 ' 4 is AES
encryptObject.Algorithm.KeyLength = ' 0 is MAX
encryptObject.SetSecret(sharedSecret) ' sharedSecret was set earlier
encryptObject.Content = stringToEncrypt
encryptedString = encryptObject.Encrypt()
これで、このデータを読み取って復号化する必要がある.NETアプリケーションができました。クラスを使用する前に、.NETでAES互換の暗号化/復号化を実行しましたRijndaelManaged
。同じ方法を使用して、このデータを復号化できることを望んでいます。ただし、これをCAPICOMの暗号化されたデータで機能させる方法がわかりません。これは、をRijndaelManaged
呼び出すときにキーと初期化ベクトルを渡す必要がありRijndaelManaged.CreateEncryptor
、CAPICOMは初期化ベクトルを受け取らないためです。CAPICOMは初期化ベクトルを使用している必要がありますが、公開していないと思います。どうすればそのベクトルを見つけることができますか?