首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到用于AES加密数据的CAPICOM初始化向量?

如何找到用于AES加密数据的CAPICOM初始化向量?
EN

Stack Overflow用户
提问于 2011-12-30 00:33:15
回答 1查看 987关注 0票数 1

我有一个用经典ASP编写的应用程序,它通过CAPICOM加密数据并将其存储在数据库中。加密代码如下所示(Classic ASP,VB。为简洁起见,请稍微简化一下):

代码语言:javascript
复制
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.CreateEncryptor时,RijndaelManaged需要传递一个密钥和一个初始化向量,而CAPICOM不接受初始化向量。我假设CAPICOM必须使用初始化向量,但没有公开它。我怎样才能找到那个向量呢?

EN

回答 1

Stack Overflow用户

发布于 2011-12-30 01:48:12

首先将一个全零IV传递给.NET解密例程。

如果整个消息解密正常,那么原始加密也使用null IV。

更有可能的是,您将得到损坏的第一个块(16字节),以及可读的第二个和后续块。

如果第二个块看起来像是消息的实际开始,那么原始IV将作为加密消息的第一个块传递。这是一种非常常见的技术。

如果不是,那么你将不得不询问加密消息的人他们使用的是什么IV。或者在没有消息的前16个字节的情况下存活。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8670499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档