2011-02-06 18 views
-1

使用RSA签名与没有密钥分发解密消息,公钥和私钥将被用户称为(随机密钥生成器将不使用)。我必须使用私钥加密散列消息才能提供签名 消息将只有10-20个字符,因此系统可以尽可能简单如何加密,并通过在Android的

+0

我知道这已经5年了,但我不知道问题是什么。 :( – 2016-04-16 21:43:53

回答

2

好的,请备份并告诉我们您想要什么。你是不是想通过保护消息的内容得到隐私,或显示该消息确实是从始发来保证真实性

如果您正在寻找隐私,RSA不是要走的路:使用RSA生成私有/公共对,然后使用它们来交换密钥 - 或者将密钥交换出去。使用像AES这样的流式算法来加密消息。

如果您只是希望签名显示消息是由您认为是谁发起的,那么请查看有关数字签名的Wiki article - 它相当简单明了。

+0

我认为这一提法是有点,因为AES误导“像AES算法流”是块暗号,而不是流暗号。 – CodesInChaos 2011-02-06 18:49:00

+0

他说,在这个问题签名。 – 2011-02-07 01:01:24

1

对于生成数字签名,你不需要加密哈希值。签名是一个单独的密码原语;无论如何,散列并未加密,有一些填充。也就是说,代码是:

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();