2011-02-06 37 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();