好的,所以我打包了一个专有的二进制格式。这基本上是几个不同栅格数据集的松散包装。无论如何,过去只是阅读本文并打开包装是一件容易的事。但是现在在下一个版本中,光栅 xml 数据现在将使用 AES-256 加密(不是我的选择,我们也没有选择)。
现在我们基本上收到了 AES 密钥以及他们正在使用的 SALT,因此我们可以修改我们的解包器。
注意这些不是键,只是一个例子:
它们都是 63 字节长的 ASCII 字符:
Key: "QS;x||COdn'YQ@vs-`X\/xf}6T7Fe)[qnr^U*HkLv(yF~n~E23DwA5^#-YK|]v."
Salt: "|$-3C]IWo%g6,!K~FvL0Fy`1s&N<|1fg24Eg#{)lO=o;xXY6o%ux42AvB][j#/&"
我们基本上想使用 C++ CryptoAPI 来解密这个(我也是这周唯一的程序员,明天就会上线。不是我们的错)。我环顾四周寻找实现这一点的简单教程。不幸的是,我什至找不到他们分别拥有盐和密钥的教程。基本上,我现在真正拥有的只是一个接收 BYTE 数组的小函数。连同它的长度。我怎样才能做到这一点?
我早上大部分时间都在尝试制作cryptoAPI的正面/反面。但它并不顺利时期:(
编辑
所以我问他们如何加密它。他们使用 C#,并使用 RijndaelManaged,据我所知,这并不等同于 AES。
编辑2
好的,终于知道发生了什么,他们给我们发错了钥匙。
他们正在做以下事情:
Padding = PKCS7 CipherMode = CBC 密钥定义为一组 32 字节的十六进制。IV 也被定义为一组 32 字节的十六进制。
当我问他们时,他们拿走了盐。
使用 wincrypt.h 头文件在 CryptoAPI 中设置这些东西有多难?