keypair java_如何在Java中序列化和反序列化RSA KeyPair
我想在我的Java應用程序中實現一些非常基本的安全性,但是一開始我就陷入了困境.
我想做的是這樣的:
1-生成RSA密鑰對
2將這些密鑰以序列化形式存儲在數據庫中,以便在下次運行該應用程序時重新創建它們
3-反序列化它們,這樣我就可以將它們恢復為對象形式,并可以使用它們來加密/解密內容.
問題是,在任何地方我都找不到直接的解釋.
我嘗試了標準的Java序列化/反序列化方法,但是它們不起作用.我的代碼如下:
public static KeyPair Bin2KeyPair(byte[] data){
try{
ByteArrayInputStream b = new ByteArrayInputStream(data);
ObjectInputStream o = new ObjectInputStream(b);
Object obj =o.readObject();
return((KeyPair)obj);
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static byte[] KeyPair2Bin(KeyPair kp){
ByteArrayOutputStream b = new ByteArrayOutputStream();
ObjectOutputStream o;
try {
o = new ObjectOutputStream(b);
o.writeObject(kp);
return b.toByteArray();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
我遇到的問題是第二種方法工作正常(將鍵序列化為字節數組),但是第一種方法失敗,拋出ClassCastException,告訴我無法將對象轉換為“ KeyPair”.
有關如何正確執行此操作的任何提示?
編輯:這是個例外(在第一種方法中,它會拋出“ return((KeyPair)obj);”):
java.lang.ClassCastException: [B cannot be cast to java.security.KeyPair
at DARCOServer.security.SecurityManager.String2KeyPair(SecurityManager.java:34)
at DARCOServer.security.SecurityManager.GenerateServerKeys(SecurityManager.java:122)
at DARCOServer.MainClass.main(MainClass.java:13)
總結
以上是生活随笔為你收集整理的keypair java_如何在Java中序列化和反序列化RSA KeyPair的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cmd写java程序_用cmd写一个最简
- 下一篇: java美元兑换,(Java实现) 美元