【发布时间】:2014-01-04 16:38:49
【问题描述】:
我需要 C# 和 PHP 之间的加密通信,不幸的是不能在服务器端使用 OpenSSL 等模块。我找到了 RSACryptoServiceProvider 和 this article。
据说不能使用RSACryptoServiceProvider来加解密,所以文中有自己的实现。但是我找到了provider.Encrypt(...) 和provider.Decrypt(...),为什么不呢?
如果我想在 C# 中使用 RSA,我会考虑这样的事情: 如果php要发送一些数据:
- php 将其公钥发送到 C#
- C# 使用来自 php 的公钥加密 AES 的密钥并将其发送到 php
- php 使用 AES 加密其消息并将其发送到 C#
(向后或多或少相同) 这可能吗?或者这有什么安全问题吗?
【问题讨论】:
-
不能使用 openssl 并不意味着不能使用 RSA。例如,您可以使用phpseclib.sourceforge.net