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 - JPQL 中的 LEFT JOIN ON()

java - 限制对 Java Servlet 的访问

security - 简而言之,DNSSEC是什么?

java - 使用 GWT 上传和下载文件

JavaFX 使用 lambda 表达式删除 InvalidatorListener

api - 使用 Spring Boot 和 OAuth2 获取此资源的范围不足

c++ - 在 C++ 中将 32 位数字拆分为字节的最快方法

c# - 将存储在整数列表(小端)中的二进制表示形式转换为 Biginteger

java - 如何在 Java 中初始化字节数组?

java - 适用于 Eclipse 的 Vrapper Vim 插件不适用于任何 Vim 命令