回答
不要试图拿出基于基本的加密算法(如RSA)的自定义加密方案。安全协议很难正确使用;您不仅需要考虑对数据进行加密或签名,还需要考虑中间人攻击,重放攻击,填充oracle攻击等等。
我建议您使用易于使用和理解的标准化,经过充分测试的安全协议:使用HTTPS。
但是之后我必须购买一个非常昂贵的证书 –
您可以使用随应用程序一起提供的自签名证书。 – dtb
@JamieHunt如果你从“更多公认的”机构购买它们,它们只是非常昂贵。那里有很多便宜的东西,它们可以完全相同的目的。 –
.NET包含用于RSA加密/解密的标准函数。
要在PHP中使用RSA,您可以在Google中找到很多实现。
只有你将在未来的跌跌问题是在PHP和.NET PROGRAMM之间传输数据:
- 你可能要使用的base64字符串
- ,如果你想用GET或POST发送数据你必须使用this解决方案
ADDED
RSA是实现算法不难实现。
this怎么办?
你能推荐任何RSA php实现吗?我似乎找不到一个好的,他们都需要我在服务器上安装一个PHP模块,或者非常缓慢,过时和无人维护。 –
@JamieHunt,我更新了我的答案 – Nikita
我建议使用RSA的标准实现,而不是自制的。正如我在我的回答中解释的那样,您需要签名,而不是加密。 –
你想要做什么通常被称为签名而不是加密。
即使在教科书RSA签名为“具有私有密钥,解密与公众一个加密”解释说,在现实中,它采用了稍有不同的程序(在部分实际的“加密”)之前,因此,你有不同的用于签名而不是用于加密。
对于PHP中的签名,看起来您可以使用openssl_sign函数。
要检查C#中的签名,可以使用.NET的RSACryptoServiceProvider类,并使用它的VerifyData方法。当然,如果您的目标仅仅是互联网中两个实体(即从服务器到客户端)之间的认证传输,那么使用SSL/TLS就是标准解决方案。如果您在应用程序中分发根证书,您可以使用自己的证书(或来自您自己的CA的证书),而不使用来自商业CA的昂贵证书。
- 1. C++:覆盖public/private继承
- 2. Dim vs Private/Public
- 3. Public vs Private
- 4. Public vs Private AttachedProperties
- 5. javascript - private/public members/functions
- 6. Private或Public TFS Build
- 7. restful-java private vs public
- 8. Android marketplace - public key
- 9. 加密/解密public/private android
- 10. System.IO.IOException:----- END RSA PRIVATE KEY not found
- 11. Typescript private setter public getter convention
- 12. python import - public or private convention
- 13. Ruby on Rails中的Public/Private
- 14. 可以将`public private(set)var numberOfEdits = 0`写为`public(get)private(set)var numberOfEdits = 0`?
- 15. Thales Payshield HSM RSA Private Key
- 16. 由Openssl生成的证书包含“PRIVATE KEY”而不是“RSA PRIVATE KEY”
- 17. 为什么'Private Sub`而不是`Public Sub`
- 18. iPhone SDK @package vs. @private vs @public and struct
- 19. 自动将public改为private(Java)
- 20. 了解打字稿类中的“public”/“private”
- 21. 更新Asana任务的“public”/“private”状态?
- 22. CA1047'Make member raise private,public or internal'and C++/CLI events
- 23. git push origin master:permission denied(public key)error
- 24. C#:IComparable implementation private
- 25. C++ Private Structures
- 26. 无法加载私钥。 (PEM例程:PEM_read_bio:no start line:pem_lib.c:648:Expecting:ANY PRIVATE KEY)
- 27. 设计决策:Order类中的OrderNumber属性 - Public还是Private?
- 28. object-private Vs class-private
- 29. 如何让我的代码安全? - Private vs. Public
- 30. 访问标识符的实例[public,protected,private]
你正在使用什么样的加密方法,你有证书吗?大多数加密问题都可以用bouncycastle来解决。 HTTP://www.bouncycastle。org/csharp/ – albertjan
使用RSA,这就是全部)) – Nikita
还没有使用任何一种加密方式,宁愿使用不是证书的东西,只要可能的话,尽可能使用密钥 –