如何在android中使用带签名的RSA加密和解密消息

时间:2011-02-06 18:06:47

标签: android certificate rsa encryption

用户不知道密钥分发,公钥和私钥(不使用随机密钥生成器)。我必须使用私钥加密散列消息以提供签名 消息只有10-20个字符,因此系统可以尽可能简单

2 个答案:

答案 0 :(得分:2)

好的,请备份并告诉我们您的需求。您是想通过保护邮件内容来获取隐私,还是通过显示邮件真的来自发件人来保证真实性

如果您正在寻找隐私,RSA不是可行的方法:使用RSA生成私有/公共对,然后使用它们来取代密钥 - 或者在带外交换密钥。使用AES之类的流式算法来加密消息。

如果您只是希望签名显示消息是由您认为的那个人发起的,那么请查看数字签名上的Wiki article - 这是相当简单的。

答案 1 :(得分:2)

要生成数字签名,您不需要加密哈希。签名是一个单独的加密原语;无论如何,哈希都没有加密原始,有一些填充。也就是说,代码是:

Signature Signer = Signature.getInstance("SHA1withRSA");
Signer.initSign(MyKey, new SecureRandom()); //Where do you get the key?
byte []Message = MyMessage(); //Initialize somehow
Signer.update(Message, 0, Message.length);
byte [] Signature = Sign.sign();