用JAVA生成的密钥是什么格式,怎么输出啊
//生成AES密钥 
 KeyGenerator   keygen   =   KeyGenerator.getInstance( "AES "); 
 SecureRandom   random   =   new   SecureRandom(); 
 keygen.init(random); 
 Key   key   =   keygen.generateKey();   
 //生成RSA密钥 
 KeyPairGenerator   pairgen   =   KeyPairGenerator.getInstance( "RSA "); 
 SecureRandom   random   =   new   SecureRandom(); 
 pairgen.initialize(KEYSIZE,   random); 
 KeyPair   keyPair   =   pairgen.generateKeyPair(); 
 Key   publicKey   =   keyPair.getPublic(); 
 Key   privateKey   =   keyPair.getPrivate(); 
 像上面生成的密钥怎么将它们转换成合适的格式输出到一个JTextArea中。   
 如果我把生成密钥以文件形式输出: 
 ObjectOutputStream   out   =   new   ObjectOutputStream(new   FileOutputStream 
 ( "keyfile ")); 
 out.writeObject(key); 
 out.close();   
 打开keyfile是乱码,这个密钥文件到底是以什么格式存储的呢     
------解决方案--------------------/** 
 	 * 十六进制打印 
 	 *  
 	 * @param b 
 	 *            字节 
 	 * @return 字符串 
 	 */ 
 	public static String toHex(byte b) { 
 		int n = b > = 0 ? b : 256 + b; 
 		String str = Integer.toHexString(n); 
 		if (str.length() == 1) 
 			str =  "0 " + str;   
 		return str.toUpperCase(); 
 	}   
 	/** 
 	 * 十六进制打印 
 	 *  
 	 * @param b 
 	 *            字节数组 
 	 * @return 
 	 */ 
 	public static String toHex(byte[] b) { 
 		String str =  " ";   
 		for (int i = 0; i  < b.length; i++) { 
 			str += toHex(b[i]); 
 		}   
 		return str; 
 	}
------解决方案--------------------RSA的私钥和公钥就是一串数字,比如公钥最常用的是65537,私钥也是一个非常大的数字,只不过现在把这个数字存储到一对公钥私钥里了。我记得只要把那个钥匙类toString()或者是什么的方法就可以显示出这个数字。存的文件你还是要用Object流读取,然后转化成公钥或私钥,再把内容取出来。