java - 将 SecretKey 转换为字节,如何将其转换回 SecretKey?

标签 java security byte des

我使用以下代码将 key 转换为字节

SecretKey key = KeyGenerator.getInstance("DES").generateKey();
byte[] bkey=key.getEncoded();

现在如何从 bkey 中获取 key ?我试过:

SecretKeySpec secretkey = new SecretKeySpec(bkey,"DES");   
SecretKeyFactory sfkey = SecretKeyFactory.getInstance("DES");
SecretKey skey = sfkey.generateSecret(secretkey);

我收到以下错误:

Error during Exception java.security.spec.InvalidKeySpecException: Inappropriate key specification

最佳答案

这应该可行

    SecretKey key = KeyGenerator.getInstance("DES").generateKey();
    byte[] data = key.getEncoded();
    SecretKey key2 = new SecretKeySpec(data, 0, data.length, "DES");

关于java - 将 SecretKey 转换为字节,如何将其转换回 SecretKey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5364338/

相关文章:

java - 加密Android代码?

c++ - 24 位图像中有多少种颜色组合

c# - 如何将 byte[] 数组转换为 IntPtr?

java - 如何替换已弃用的方法 Mockit.setUpMock?

java - Spring 3 : How to call @Async annotated methods from the TaskExecutor

security - LsaEnumerateAccountRights 总是返回 "File not found"

C:逐字节覆盖另一个函数

java - 如何使用 Joda Time 计算事件发生次数?

java - 使用 java regex 处理标记标签

Windows服务强化: Write-Restricted tokens & smb