日期:2014-05-20  浏览次数:21031 次

java 使用非对称的RSA 的公私钥 如何 加/解密 对称AES的密钥key.dat文件
各位大侠们,小弟,在用java jce 使用RSA算法生成了序列化的public_key.dat 文件和 private_key.dat文件,并且使用 AES 算法生成了序列化的key.dat文件,现在,想用public_key.dat文件加密序列化的key.dat文件,加密后的文件记为encry_key.dat,之后在用private_key.dat文件解密encry_key.dat,解密后的文件记为 copy_key.dat,现在想要的结果为原序列化的key.dat文件和 生成的copy_key.dat一样,但就是达不到结果,请高人们指点下..

其实本人也想了很多办法,关键在于byte 数组如何 转化为SecretKey类型的 对象,但要是有好的解决办法,希望得到高人的指点..谢谢..

------解决方案--------------------
解密的时候将这个byte数组解密 得到的是Object的流 然后通过ByteArrayInputStream 和 ObjectInputStream读取成对象
下面给你个大致流程 中间加密解密你处理下应该就O了
Java code
String deskey = "aaa";
        
        ByteArrayOutputStream key_file_out = new ByteArrayOutputStream (); 
        ObjectOutputStream key_object_out = new ObjectOutputStream(key_file_out);
        key_object_out.writeObject(deskey);
        
        byte[] a =(key_file_out.toByteArray());
        
        ByteArrayInputStream input = new ByteArrayInputStream(a);
        ObjectInputStream obj = new ObjectInputStream(input);
        String s =(String) obj.readObject();
        System.out.println(s);