2011-05-22 22 views
0

我是一个J2ME程序员。现在我的项目与通过HTTP向服务器发送数据相关。在这里,我使用Bouncy Castle库(Triple DES)对J2ME端的数据进行加密。我也维护服务器端编码。如何在不事先修复密钥的情况下将数据从J2ME客户端传递到服务器?

然后在服务器端将接收到的数据解密并存储在数据库中。在这里,我假设在我的代码中静态地修复了这个键。在服务器端和J2ME端,我使用相同的键值。

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

如果我使用J2ME部分中的某个密钥对数据进行加密,那么服务器如何在不知道密钥的情况下对其进行解密?还是有任何其他机制可以用来解决这个问题?非对称密码术能帮助我吗?

+2

呃,什么?请花更多时间在你的问题上,这是不可理解的。顺便说一句,3DES是非常过时的,当然不是不对称。 – 2011-05-22 13:27:22

回答

2

的方式asymmetric cryptography工作如下:

  1. 服务器生成一对公钥/私钥
  2. 它发送公钥到客户端
  3. 客户端使用公钥加密的一些秘密消息
  4. 服务器使用私钥解密消息。

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

+1

如果你解释它,请正确解释它。补充说明:您需要为所有客户提供公钥或某种建立信任的方式(PKI)。客户端可以生成用于加密的(随机)密钥,例如使用AES。他们加密消息。客户端然后可以发送加密的消息和使用公钥加密的密钥。另一方使用私钥解密密钥,然后解密该消息。你需要一些方法来验证加密信息的完整性(例如,使用两个随机密钥并使用一个用于MACing。)最后,先购买一本好书。 – 2011-05-23 00:31:47

+0

嗨Darin Dimitrov&owlstead,谢谢你的回答和评论。对我有帮助。 – 2011-06-26 05:06:46

相关问题