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 + -
显示快捷键?