我有一個用傳統ASP編寫的應用程序,它通過CAPICOM加密數據並將其存儲在數據庫中。加密的代碼看起來是這樣的(經典的ASP,VB簡化一點贅述。):如何找到用於AES加密我的數據的初始化向量CAPICOM?
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應用程序。在使用RijndaelManaged
類之前,我在.NET中完成了與AES兼容的加密/解密,我希望我可以使用相同的方法來解密這些數據。但是,我無法弄清楚如何使它與CAPICOM的加密數據一起工作,因爲RijndaelManaged
要求您在調用RijndaelManaged.CreateEncryptor
時傳遞一個密鑰AND初始化向量,並且CAPICOM不採用初始化向量。我假設CAPICOM必須使用初始化向量,但不能公開它。我怎樣才能找到那個矢量?
好奇,如果你找到了解決方案。我處於同樣的情況,並且正忙於解密工作! – Dave 2014-01-11 21:07:42
@Dave - 我從來沒有這個工作,我們最終採取了另一種方法。但我確實發現CAPICOM在Classic ASP中吐出的值不僅包含加密值,還用其他屬性加密了整個複雜對象。任何解密例程都需要解析整個對象才能正常工作。 – 2014-01-13 05:56:56