Java me 如何将数据从J2ME客户机传递到服务器,而不事先修复密钥?

Java me 如何将数据从J2ME客户机传递到服务器,而不事先修复密钥?,java-me,cryptography,encryption-asymmetric,Java Me,Cryptography,Encryption Asymmetric,我是一名J2ME程序员。现在,我的项目涉及通过HTTP向服务器发送数据。在这里,我使用Bouncy Castle库(Triple-DES)在J2ME端加密数据。我还维护服务器端编码 然后在服务器端对接收到的数据进行解密并存储在数据库中。这里我假设键在我的代码中是静态固定的。在服务器端和J2ME端,我使用相同的键值 但我要求密钥是随机生成的,用户不知道 如果我在J2ME部分使用某种密钥加密数据,那么服务器如何在不知道密钥的情况下解密数据?或者有没有其他机制可以解决这个问题?非对称加密技术可以帮我吗

我是一名J2ME程序员。现在,我的项目涉及通过HTTP向服务器发送数据。在这里,我使用Bouncy Castle库(Triple-DES)在J2ME端加密数据。我还维护服务器端编码

然后在服务器端对接收到的数据进行解密并存储在数据库中。这里我假设键在我的代码中是静态固定的。在服务器端和J2ME端,我使用相同的键值

但我要求密钥是随机生成的,用户不知道

如果我在J2ME部分使用某种密钥加密数据,那么服务器如何在不知道密钥的情况下解密数据?或者有没有其他机制可以解决这个问题?非对称加密技术可以帮我吗?

工作方式如下:

  • 服务器生成一对公钥/私钥
  • 它将公钥发送到客户端
  • 客户端使用公钥加密一些秘密消息
  • 服务器使用私钥解密消息

  • 非对称算法比对称加密慢,因此它们通常只用于在服务器和客户端之间交换密码,然后使用对称算法对消息进行加密。

    Er,什么?请在你的问题上多花点时间,这是不可理解的。顺便说一句,3DES已经过时了,而且肯定不是不对称的。如果你解释它,请正确解释。补充:您需要为所有客户端提供公钥或某种建立信任(PKI)的方法。客户端可以生成用于加密的(随机)密钥,例如使用AES。他们会帮你加密信息。然后,客户端可以发送加密的消息和使用公钥加密的密钥。另一方使用私钥解密密钥,然后解密消息。您还需要一些方法来验证加密消息的完整性(例如,使用两个随机密钥,并使用一个用于MACing。最后,请先购买一本好书。您好Darin Dimitrov&owlstead,谢谢您的回答和评论。这对我很有帮助。