好吧,所以我打包了一個專有的二進制格式。這基本上是幾個不同柵格數據集的鬆散打包。無論如何,只要閱讀本文並拆包是一件容易的事。但現在在下一個版本中,柵格xml數據現在要使用AES-256進行加密(不是我的選擇,也沒有選擇)。AES和CryptoAPI解密?當你知道鑰匙/鹽
現在我們基本上發送了AES密鑰和他們正在使用的SALT,所以我們可以修改我們的解包器。
注意,這些鍵只是一個例子:
他們是每個63字節長的ASCII字符:
Key: "QS;x||COdn'[email protected]`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。
EDIT2
奧凱終於得到了確切發生了什麼事情,他們發錯了鍵
他們正在做以下幾點:
填充= PKCS7 CipherMode = CBC 該鍵被定義爲一組十六進制的32字節。 IV也被定義爲一組32字節的十六進制數。
當我問他們時,他們拿走了鹽。
使用wincrypt.h頭文件在CryptoAPI中設置這些內容有多難?
只要你的塊大小爲128位和你堅持到128位,192位或256位密鑰算法的名稱,你可以合理假設RijndaelManaged的== AES在具體細節http://blogs.msdn.com/shawnfa/archive/2006/10/09/The-Differences-Between-Rijndael-and-AES.aspx – 2009-10-06 14:27:41
即使你的編輯,你仍然需要知道他們的編碼方案'將任意字節轉換爲可打印字符。另外,您需要確認密碼模式。密碼分組鏈接(CBC)? – 2009-10-06 14:29:26