keystoregenerator.java

来自「JGRoups源码」· Java 代码 · 共 134 行

JAVA
134
字号
//$Id: KeyStoreGenerator.java,v 1.2 2005/01/07 15:15:26 steview Exp $package org.jgroups.demos;import java.io.FileOutputStream;import java.io.OutputStream;import java.security.KeyStore;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;/** * Generates a keystore file that has a SecretKey in it. It is not possible to  * use the keytool JDk tool to achieve this. This is a simple way to generate  * a JCEKS format keystore and SecretKey. *  * Usage is --alg ALGNAME --size ALGSIZE --storeName FILENAME --storePass PASSWORD --alias KEYALIAS *  * Any of args are optional and will default to * <ul> * <li>ALGNAME = Blowfish  * <li>ALGSIZE = 56 * <li>FILENAME = defaultStore.keystore * <li>PASSWORD = changeit * <li>ALIAS = mykey * </ul> *  * @author S Woodcock * */public class KeyStoreGenerator {	static String symAlg = "Blowfish";	static int keySize =56;	static String keyStoreName = "defaultStore.keystore";	static String storePass = "changeit";	static String alias = "myKey";		public static void main(String[] args)	{				int i = 0, j;        String arg =null;;        boolean specified =false;        		 while (i < args.length && args[i].startsWith("-")) {            arg = args[i++];            System.out.println("Found arg of " + arg);            if (arg.equalsIgnoreCase("--alg")){            	if (i<args.length){            		symAlg = args[i++];            	}else{            		System.out.println("No Algorithm supplied using default of "+ symAlg);            	}            }            else if (arg.equalsIgnoreCase("--size")){            	if (i<args.length){            		keySize = Integer.parseInt(args[i++]);            	}else{            		System.out.println("No Size supplied using default of "+keySize);            	}            }else if (arg.equalsIgnoreCase("--storeName")){                            	if (i<args.length){            	    String temp = args[i++];            		keyStoreName = temp;            	}else{            		System.out.println("No keystore supplied using default of "+keyStoreName);            	}            }            else if (arg.equalsIgnoreCase("--storePass")){            	if (i<args.length){            		storePass = args[i++];            	}else{            		System.out.println("No password supplied using default of "+storePass);            	}            }            else if (arg.equalsIgnoreCase("--alias")){            	if (i<args.length){            		alias = args[i++];            	}else{            		System.out.println("No alias supplied using default of "+alias);            	}            }            }		 System.out.println("Creating file '" + keyStoreName +"' using Algorithm '"+ 		 		symAlg +"' size '"+keySize + "'");		 		 OutputStream stream =null;		 try {		 stream= new FileOutputStream(keyStoreName);		 SecretKey key = initSymKey();		 KeyStore store = KeyStore.getInstance("JCEKS");		 store.load(null,null);		 store.setKeyEntry(alias,key,storePass.toCharArray(),null);		 store.store(stream,storePass.toCharArray());		 		 } catch (Exception e){		 	e.printStackTrace();		 }		 finally{		 	try {		 		stream.close();		 	} catch (Exception e){		 				 	}		 }		 System.out.println("Finished keystore creation");	}		public static SecretKey initSymKey() throws Exception	{		KeyGenerator keyGen = null;		// generate secret key				keyGen = KeyGenerator.getInstance(getAlgorithm(symAlg));				keyGen.init(keySize);		SecretKey secretKey = keyGen.generateKey();				return secretKey;			}		private static String getAlgorithm(String s)	{		int index = s.indexOf("/");		if (index == -1)			return s;		return s.substring(0, index);	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?