现在 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);