《java加密算法(参考网络)》由会员分享,可在线阅读,更多相关《java加密算法(参考网络)(2页珍藏版)》请在金锄头文库上搜索。
1、package com.ex8;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.secur
2、ity.KeyPairGenerator;import java.security.NoSuchAlgorithmException;import java.security.PublicKey;import java.security.spec.InvalidKeySpecException;import java.security.spec.X509EncodedKeySpec;import javax.crypto.KeyGenerator;public class KeyGeneratorEx public static void main(String args) throws No
3、SuchAlgorithmException, IOException, InvalidKeySpecException KeyGenerator kg=KeyGenerator.getInstance(DESede);kg.init(168);Key key=kg.generateKey();byte bs=key.getEncoded();System.out.println(得到单钥加密密钥:+new String(bs);System.out.println(-);KeyPairGenerator kpg=KeyPairGenerator.getInstance(RSA);kpg.in
4、itialize(1024);KeyPair kp=kpg.generateKeyPair();bs=kp.getPublic().getEncoded();System.out.println(产生双玥的Public密钥对的公钥:+new String(bs);System.out.println(-);bs=kp.getPrivate().getEncoded();System.out.println(产生双玥的Private密钥对的私钥:+new String(bs);System.out.println(-);String path=E:+File.separator+forrest+
5、File.separator+java+File.separator+key+File.separator+publicKey.dat;File f=new File(path);FileOutputStream fout=new FileOutputStream(f);fout.write(kp.getPublic().getEncoded();fout.flush();fout.close();System.out.println(PublicKey saved absolute path:+f.getAbsolutePath();System.out.println(-);path=E:
6、+File.separator+forrest+File.separator+java+File.separator+key+File.separator+privateKey.dat;ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(new File(path);out.writeObject(kp.getPrivate();out.flush();out.close();System.out.println(PrivateKey saved);System.out.println(-);FileInputS
7、tream fin=new FileInputStream(f.getAbsoluteFile();ByteArrayOutputStream bout=new ByteArrayOutputStream();int bt=0;while(bt=fin.read()!=-1)bout.write(bt);fin.close();byte keyBytes=bout.toByteArray();/公钥解析X509EncodedKeySpec spec=new X509EncodedKeySpec(keyBytes);KeyFactory keyFactory=KeyFactory.getInstance(RSA);PublicKey pubKey=keyFactory.generatePublic(spec);System.out.println(Get the public key:+new String(pubKey.getEncoded();