我一直在努力閱讀一個公鑰文件,我希望獲取文件中的密鑰並使用它來加密另一個文件。我使用RSA PKCS1 v1.5加密並用SH1散列algorythim簽名文件,但那不是問題,問題是我已經提供了公鑰文件以便在加密時使用,而且我看起來似乎不能贏取閱讀該文件並生成一個publicKey對象。閱讀公鑰文件並使用密鑰加密另一個文件的問題
下面的代碼:
void setPublicKey(String file)
{
try
{
FileInputStream keyfis = new FileInputStream(file);
byte[] encKey = new byte[keyfis.available()]; keyfis.read(encKey);
keyfis.close();
X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(encKey);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
// I get an exception on the below line
publicKey = keyFactory.generatePublic(pubKeySpec);
} catch (Exception e)
{
e.printStackTrace();
}
}
可有人請幫助!
你確信有沒有一個換行符在文件的結尾,對不對?由於您正在將整個文件讀入字節數組,因此您需要注意這一點。 – stevevls 2011-05-25 12:21:02
如何檢查?順便說一句,我得到的異常是一個InvalidKeySpecException:InvalidKeyException:無效的密鑰格式。 – Yolo 2011-05-25 13:52:28
不,沒有新的路線。 – Yolo 2011-05-25 13:56:54