日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java保存私钥_如何在Java中使用密钥库来存储私钥?

發(fā)布時間:2025/3/20 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java保存私钥_如何在Java中使用密钥库来存储私钥? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

小編典典

注意:此代碼僅用于演示目的。將私鑰存儲在磁盤上時,必須對其進(jìn)行加密。不要按原樣使用它。

您可以執(zhí)行以下操作:

KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");

kpg.initialize(2048);

KeyPair kp = kpg.genKeyPair();

KeyFactory fact = KeyFactory.getInstance("RSA");

RSAPublicKeySpec pub = fact.getKeySpec(kp.getPublic(),

RSAPublicKeySpec.class);

saveToFile(PUBLIC_KEY_FILE,

pub.getModulus(), pub.getPublicExponent());

RSAPrivateKeySpec priv = fact.getKeySpec(kp.getPrivate(),

RSAPrivateKeySpec.class);

saveToFile(PRIVATE_KEY_FILE,

priv.getModulus(), priv.getPrivateExponent());

保存功能:

private static void saveToFile(String fileName,

BigInteger mod, BigInteger exp)

throws SomeException {

ObjectOutputStream oout = new ObjectOutputStream(

new BufferedOutputStream(new FileOutputStream(fileName)));

try {

oout.writeObject(mod);

oout.writeObject(exp);

} catch (Exception e) {

throw new SomeException(e);

} finally {

oout.close();

}

}

并以相同的方式讀回:

private static PublicKey readPublicKey() throws SomeException {

InputStream in = new FileInputStream(PUBLIC_KEY_FILE);

ObjectInputStream oin =

new ObjectInputStream(new BufferedInputStream(in));

try {

BigInteger m = (BigInteger) oin.readObject();

BigInteger e = (BigInteger) oin.readObject();

RSAPublicKeySpec keySpec = new RSAPublicKeySpec(m, e);

KeyFactory fact = KeyFactory.getInstance("RSA");

PublicKey pubKey = fact.generatePublic(keySpec);

return pubKey;

} catch (Exception e) {

throw new SomeException(e);

} finally {

oin.close();

}

}

讀取私鑰相似。

2020-09-11

總結(jié)

以上是生活随笔為你收集整理的java保存私钥_如何在Java中使用密钥库来存储私钥?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。