У меня есть приложение, написанное на Classic ASP, которое шифрует данные через CAPICOM и сохраняет их в базе данных.Код шифрования выглядит примерно так (Classic 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, которое должно прочитать эти данные и расшифровать их.Я сделал AES-совместимое шифрование / дешифрование в .NET перед использованием класса RijndaelManaged
, и я надеюсь, что смогу использовать тот же метод для дешифрования этих данных.Однако я не могу понять, как заставить это работать с зашифрованными данными CAPICOM, потому что RijndaelManaged
требует, чтобы вы передавали ключ И вектор инициализации при вызове RijndaelManaged.CreateEncryptor
, а CAPICOM не брал вектор инициализации.Я предполагаю, что CAPICOM должен использовать вектор инициализации, но не выставлять его.Как я могу найти этот вектор?