我用java rmi客户端服务器做了一个聊天应用程序。为了我的消息使用RSA算法的安全性,但我很难将私钥分发到对手的聊天中。也许从我的朋友那里可以帮助如何将私钥分发给对手,以便他可以解密发送的聊天消息。私钥分配技术?
私钥分配技术?
回答
你需要使用的是一个不对称的方案来传输信息。使用非对称加密,即使有人在收听,他们也不知道他们的关键是什么。你可以使用它加密消息,但是通常你可以用它来加密一个对称密钥,然后从那里使用它。
有关背景的更多信息,请参阅this。
至于如何在你的代码中做到这一点,我会建议googling沿着“java公钥库”的东西。
首先你永远不会分配私钥,而公钥可以公开(duh!)可用。您使用聊天第二方的人员的公共密钥加密您的消息,然后他们使用他们的私钥对其进行解密。您可以使用纯文本,电子邮件或公布您的公共密钥,以便其他人可以使用它加密他们的邮件。
为了让您的生活更轻松地投入使用ssl - 由于使用非对称加密建立安全通道后,它会更快地交换对称会话密钥并使用更快的对称加密。
实际上,分配公钥也可能是一个问题。如果你的对手也可以修改传输(而不是只听你的传输通道),他/她可以发送你的伪造公钥。这就是为什么公钥(例如在网站上)需要由可信任权限链(其公钥在Web浏览器中被硬编码)签名的原因。
公钥需要被信任,但可信任的机构只是实现该目标的一种方式(信任网,带外通信等)。 –
RSA是一种公钥加密技术,您的客户拥有一个公钥,并且您拥有一个私钥,使用该私钥对邮件进行解密,即使用客户端公钥对邮件进行加密并使用您的私钥进行解密。 你可以检查一下http://www.di-mgt.com.au/rsa_alg.html 它非常详细地解释它是如何工作的。 这个PPT解释了它如何在java中实现 www.cs.cityu.edu.hk/~cs4288/Java/RSA.doc 它真的很有帮助。
希望它有帮助!
- 1. 如何在C#中使用公钥和私钥加密技术
- 2. 分配证书和私钥
- 3. 分类技术
- 4. 使用公钥/私钥技术限制Web应用程序的访问
- 5. 分离和模式匹配技术
- 6. MATLAB大规模多分配技术
- 7. 技术词分离
- 8. BlockBhain:私人区块链技术
- 9. 分配私钥不安装在此MAC
- 10. 分配规定没有找到私钥
- 11. SSL密钥交换加密技术
- 12. 分布式缓存技术
- 13. 图像分割技术
- 14. C#的技术分析Math.Round
- 15. 最快的分拣技术
- 16. 需要图分区技术
- 17. 使用UI技术的网络技术
- 18. SVN分支和子分岔技术
- 19. iPhone配置问题:公钥/私钥
- 20. 什么是无线技术的配置
- 21. 配合不同控制技术解析多部分请求
- 22. HTML5技术
- 23. .NET“推”技术?
- 24. GetDeviceCaps技术
- 25. 跟踪技术
- 26. ajax技术
- 27. Mongomapper - bootstrapping技术
- 28. WPF技术栈
- 29. Java WebService技术
- 30. AS3 - Autocrop技术?
为什么你想要在那里分发私钥?整个想法是保留私钥,好吧*私人* – Voo
确实。您应该使用朋友的_public_键加密传出消息,因此只有他们可以用其私钥解密。 –
他谈论* a *私钥。不是他或他的朋友。这意味着他意味着一个对称密钥。 –