密钥对的存储和加载

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

主要用于数字签名:

1.存储密钥对

首先使用KeyPairGeneration产生密钥对:

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

keyGen.initialize(1024);

KeyPair keyPair = keyGen.genKeyPair();

privateKey = keyPair.getPrivate();

publicKey = keyPair.getPublic();

将密钥存储为文件的方法:

FileOutputStream fs = new FileOutputStream(fileName);

fs.write(privateKey.getEncoded());

fs.close();

2.加载密钥对

假设公钥文件为public.dat、private.dat

首先读取公钥文件:

//read public key

FileInputStream fsPublicKey = new FileInputStream(publicKeyFile);

BufferedInputStream bfsPublicKey = new BufferedInputStream(fsPublicKey);

byte[] bytePublicKey = new byte[bfsPublicKey.available()];

bfsPublicKey.read(bytePublicKey);

bfsPublicKey.close();

使用KeyFactory产生公钥

//build public key

X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(

byteEncodedPublicKey);

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

PublicKey pubKey = keyFactory.generatePublic(pubKeySpec);

主意,私钥的的处理和公钥相同,唯一不同的是私钥的KeySpec不同。私钥应使用PKCS8EncodedKeySpec

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航