C# 键+;初始化向量到新密钥?
我有一个解密数据的API。此API仅接收密钥(AES密钥的字节)。此API不接收初始化向量(它使用零向量作为初始化向量) 我从第三方收到加密数据。该数据使用特定密钥和初始化向量加密到AES 256 我有密钥和初始化向量。有没有办法用API解密这些数据?或者,换句话说,如果密钥和初始化向量都是常量,我可以创建一个密钥,它允许我用{0,0,0,…}初始化向量解密这些数据吗C# 键+;初始化向量到新密钥?,c#,java,security,encryption,aes,C#,Java,Security,Encryption,Aes,我有一个解密数据的API。此API仅接收密钥(AES密钥的字节)。此API不接收初始化向量(它使用零向量作为初始化向量) 我从第三方收到加密数据。该数据使用特定密钥和初始化向量加密到AES 256 我有密钥和初始化向量。有没有办法用API解密这些数据?或者,换句话说,如果密钥和初始化向量都是常量,我可以创建一个密钥,它允许我用{0,0,0,…}初始化向量解密这些数据吗 谢谢。是的,可以解密。。。不,不是你描述的那样 AES是一种分组密码 大多数情况下,密码没有按原样使用,但它被置于一种特殊的操作
谢谢。是的,可以解密。。。不,不是你描述的那样 AES是一种分组密码 大多数情况下,密码没有按原样使用,但它被置于一种特殊的操作模式(这是您的API可能无法做到的) 您必须围绕密码实现解密例程,并将AES-API用作加密原语 例如,使用通用AES实现对AES-CBC进行解密 将密文拆分为128位块,并从索引1开始对其编号 将静脉注射预处理为cypher_块0 现在,为了获得纯文本,我们可以围绕API函数定义一个函数 明文\u块[i]=密码\u块[i-1]异或aes\u解密(密码\u块[i],密钥) 如您所见,您可以从索引1开始获取所有纯文本块
一旦获得所有纯文本块,您可能会想要去除填充,但这是另一个故事…看看下面的图表,例如,看看IV是如何使用的。
我有一个解密数据的API
有没有办法用API解密这些数据?
如果我们不知道您使用的是什么API,我们怎么回答这个问题?!正如我提到的,API接收密钥(作为字节缓冲区)和要解密的数据(作为字节缓冲区),并使用AES-256算法(即密钥)对数据进行解密。它使用{0,0,0,0,0…}作为IV(我无法更改)。