keypair java_如何在Java中序列化和反序列化RSA KeyPair
我想在我的Java應(yīng)用程序中實(shí)現(xiàn)一些非常基本的安全性,但是一開(kāi)始我就陷入了困境.
我想做的是這樣的:
1-生成RSA密鑰對(duì)
2將這些密鑰以序列化形式存儲(chǔ)在數(shù)據(jù)庫(kù)中,以便在下次運(yùn)行該應(yīng)用程序時(shí)重新創(chuàng)建它們
3-反序列化它們,這樣我就可以將它們恢復(fù)為對(duì)象形式,并可以使用它們來(lái)加密/解密內(nèi)容.
問(wèn)題是,在任何地方我都找不到直接的解釋.
我嘗試了標(biāo)準(zhǔn)的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;
}
我遇到的問(wèn)題是第二種方法工作正常(將鍵序列化為字節(jié)數(shù)組),但是第一種方法失敗,拋出ClassCastException,告訴我無(wú)法將對(duì)象轉(zhuǎn)換為“ KeyPair”.
有關(guān)如何正確執(zhí)行此操作的任何提示?
編輯:這是個(gè)例外(在第一種方法中,它會(huì)拋出“ 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)
總結(jié)
以上是生活随笔為你收集整理的keypair java_如何在Java中序列化和反序列化RSA KeyPair的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: cmd写java程序_用cmd写一个最简
- 下一篇: java biginterger_Jav