当前位置: 代码迷 >> Java Web开发 >> 有关SecretKey key = KeyGenerator.getInstance("DES")密钥的保存!该如何解决
  详细解决方案

有关SecretKey key = KeyGenerator.getInstance("DES")密钥的保存!该如何解决

热度:6342   发布时间:2013-02-25 21:22:53.0
有关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);
  相关解决方案