【发布时间】:2012-10-01 22:33:24
【问题描述】:
我已经找到了一些在 PHP 中加密和在 C# 中解密的答案,但目前还无法逆转这个过程......
背景是我想要的:
在 C# 中: AES 加密文件的内容。 将数据(可能通过 http 通过 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);
【问题讨论】:
-
您能否准确解释您遇到问题的地方,或者您的问题是什么?
-
谷歌搜索 PHP AES 出现了phpaes.com,尽管我无法保证它的效果如何,因为我从未使用过它。不过可能对你有用。此外,mhash 扩展支持许多加密方法,尽管 AES 不在其中。如果允许您使用 AES 以外的加密方法,那么您最好的选择可能是选择同时存在于 C# 和 mhash 扩展中的方案。
-
你能为我们构建一个测试用例吗?在 C# 中加密一个简单的字符串。然后,使用您当前在 PHP 中的 AES 实现加密相同的字符串并发布。也张贴你的钥匙。我可以与我的实现进行比较,并尝试找出哪个有效,哪个无效。
-
我在 C# 中尝试了多种方法,能够“加密”文件,但从未设法在 php.ini 中成功解密。因此不确定哪一端不起作用。完美的答案是一行 c# 显示加密,一行 php 显示解密。
-
您好,更准确地说,我需要一行 C# 代码,它可以加密以允许我在 PHP 中使用“mcrypt_cbc(MCRYPT_RIJNDAEL_128, $key, $buffer, MCRYPT_DECRYPT, $iv);”进行解密请问?