日期:2014-05-17  浏览次数:20955 次

有关SecretKey key = KeyGenerator.getInstance("DES")密钥的保存!!
现在 SecretKey key = KeyGenerator.getInstance("DES").generateKey()获得密钥,我想把密钥写入数据库或文件
  下次读出来后,怎么把读出来的密钥(string)转换为key(SecretKey )!!!

------解决方案--------------------
有点类似反向解析啊,貌似DES,SHA加密都不能反向解析的吧
------解决方案--------------------
密钥怎么会是 String 呢,应该是 byte[]

使用 byte[] bys = key.getEncoded(); 可以获得密钥的二进制表示数据,将这数据序列化到文件或者其他什么地方。

要还原为 Key 的话,从文件或者其他什么地方读取 byte[] 然后使用下面两种方法之一还原密钥:

Key key = new SecretKeySpec(bys, "DES");

或者:

KeySpec keySpec = new DESKeySpec(bys);
SecretKeyFactory factory = SecretKeyFactory.getInstance("DES");
Key key = factory.generateSecret(keySpec);