我試圖模擬RSA加密和解密我想加密方法從字符串字節數組,然後串
- 採取串
- 將其轉換爲字節[]
- 做RSA功能(我將在下面的代碼顯示)
- 返回字節[]作爲一個字符串
我現在已經和它的作品但重ceiving和返回的byte [](不是字符串)
public byte[] encrypt (byte[] message){
byte [] t= ((new BigInteger(message)).modPow(e, N)).toByteArray();
return (t);
}
解密方法,我希望它
- 接收加密()返回的字符串
- 將其轉換爲字節[]
- 在字節[]上執行RSA以獲得原始字節[]
返回原始字符串 我到目前爲止的內容
種public byte [] decrypt (byte [] message) { byte[] data= ((new BigInteger(message)).modPow(d, N)).toByteArray(); return data; }
這2種方法的工作,但我需要在我的主類和使用的byte [] Str.getbyte()來加密和新的字符串(字節[])加密來創建一個byte []。 ....
我想我的主要處理只有字符串。當我使用這樣的解密(字符串消息)代碼
public String decrypt (String message) {
byte[] data= ((new BigInteger(message.getBytes())).modPow(d, N)).toByteArray();
return data.toString();
}
它不給我原來的文本,因爲它與解密(字節[]消息)的做法,但它返回像[email protected]
我我確定我錯過了將文本轉換爲byte []的相關內容,反之亦然,但我不確定我錯過了什麼。
我很樂意聽取您的意見。
(對不起,我的英語)
查看Object#toString()方法以及它返回的數組類型。 –
使用'new String(data)'而不是'data.toString();' – 2014-03-05 07:45:12