我已經發現了幾個答案在PHP中加密和解密在C#中,但至今一直未能逆轉這一過程......如何在C#中使用AES進行加密,以便我可以用PHP解密?
的背景我想:
在C#: AES加密文件的內容。 將數據(可能通過POST通過POST)上載到服務器。
在PHP: 接收並保存文件。
而在PHP(稍後): 解密文件。
我特別想在使用SSL/TLS之外加密它(儘管我可能也要這樣做),因爲我需要知道該文件在存儲在服務器上時仍然是加密的(並且可解密!)。
在C#加密我使用:
Rijndael RijndaelAlg = Rijndael.Create();
RijndaelAlg.KeySize = 128;
RijndaelAlg.Mode = CipherMode.CBC;
CryptoStream cStream = new CryptoStream(fStream, RijndaelAlg.CreateEncryptor(Key, IV),
CryptoStreamMode.Read);
和PHP解密:
mcrypt_cbc(MCRYPT_RIJNDAEL_128, $key, $buffer, MCRYPT_DECRYPT, $iv);
你能解釋一下你在哪裏遇到問題,或者你的問題是什麼? – ZoFreX 2010-11-16 09:33:48
谷歌搜索PHP的AES出現了http://www.phpaes.com/雖然我不能擔保它的工作原理,因爲我從來沒有使用它。雖然可能對你有用。另外,mhash擴展支持許多加密方法,但AES不在其中。如果你被允許使用除AES以外的加密方法,那麼你最好的選擇是可能選擇一個既存在於C#中也存在於mhash擴展中的方案。 – GordonM 2010-11-16 11:48:18
你能爲我們建立一個測試案例嗎?在C#中加密一個簡單的字符串。然後,用PHP中的當前AES實現加密相同的字符串併發布。發佈您的密鑰以及。我可以與我的實現進行比較,並試圖找出哪一個正在工作,哪個不是。 – Brad 2010-11-16 15:11:29