读取java格式字节的私钥而不进行编码

读取java格式字节的私钥而不进行编码,java,cryptography,Java,Cryptography,我有个字节的私钥,没有编码。有没有办法将它们读取到java.security.PrivateKey对象?读取KeyFactory.generatePrivate()需要编码的密钥(例如PKCS8 encoded)。 我可以读取未编码的密钥吗?或者将其编码为PKCS8格式 我目前的代码是: byte[] keyBytes = hexToBytes("65462b0520ef7d3df61b9992ed3bea0c56ead753be7c8b3614e0ce01e4cac41b"); KeyFact

我有个字节的私钥,没有编码。有没有办法将它们读取到java.security.PrivateKey对象?读取KeyFactory.generatePrivate()需要编码的密钥(例如PKCS8 encoded)。 我可以读取未编码的密钥吗?或者将其编码为PKCS8格式

我目前的代码是:

byte[] keyBytes = hexToBytes("65462b0520ef7d3df61b9992ed3bea0c56ead753be7c8b3614e0ce01e4cac41b");
KeyFactory kf = KeyFactory.getInstance("EC");
PrivateKey privateKey = kf.generatePrivate(new PKCS8EncodedKeySpec(keyBytes));

public static byte[] hexToBytes(String s) {
    int len = s.length();
    byte[] data = new byte[len / 2];
    for (int i = 0; i < len; i += 2) {
        data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
                + Character.digit(s.charAt(i + 1), 16));
    }
    return data;
}
我通过下一个python脚本获得了关键点:

from secp256k1 import PrivateKey
import sha3

keccak = sha3.keccak_256()
keccak.update("secret".encode('UTF-8'))
digest = keccak.digest()
print("priv_key_test: " + PrivateKey(digest).serialize())

有关在Java中使用EC算法的详细信息,请参阅。

添加您试图解决该问题的代码
from secp256k1 import PrivateKey
import sha3

keccak = sha3.keccak_256()
keccak.update("secret".encode('UTF-8'))
digest = keccak.digest()
print("priv_key_test: " + PrivateKey(digest).serialize())