Java中的RSA加密/解密

时间:2011-10-18 15:08:58

标签: java encryption rsa

我是Cryptography的新手。我获得了base64格式的RSA公钥。有没有办法只使用公钥加密一些文本。我也需要模数/指数吗?

任何指针都会非常有用。感谢

3 个答案:

答案 0 :(得分:0)

我也感兴趣,我去了“Google-ing”并找到了这个有趣的页面。这是很多信息,但在我看来非常有趣。

http://www.di-mgt.com.au/rsa_alg.html

答案 1 :(得分:0)

说它是base64格式的信息不够。至少有两种常见的方法可以格式化RSA公钥,并且其中一种可以是base64编码的。如果幸运的话,关键是X509EncodedKeySpec。如果是这样,您需要对其进行base64解码,创建KeyFactory,然后使用KeyFactory生成公钥。这里有一些未经测试,甚至没有编译的代码,希望能够显示这些步骤。

// Example using the base64 class from http://iharder.sourceforge.net/current/java/base64/

byte [] x509Key = Base64.decode(base64Key);
KeyFactory kf = KeyFactory.getInstance("RSA");
RSAPublicKey rsaPub = (RSAPublicKey) kf.generatePublic();

如果你的base64键周围有----- BEGIN和---- END行,则删除它们。

答案 2 :(得分:-1)

公钥用于解密已通过私钥加密的密文。

每个想要通信的用户都有一对加密密钥 - 公共加密密钥和私有解密密钥。

您可以使用公钥进行加密,因为密钥是以数学方式导出的,但是选择的参数使得从公钥中确定私钥非常昂贵。