Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中Ed25519密钥对的PEM文件格式_Java_Security_Cryptography_Pem_Ed25519 - Fatal编程技术网

Java中Ed25519密钥对的PEM文件格式

Java中Ed25519密钥对的PEM文件格式,java,security,cryptography,pem,ed25519,Java,Security,Cryptography,Pem,Ed25519,我正在尝试编写和读取一个PEM文件,该文件包含Java 15中Ed25519的PublicKey和PrivateKey 然而,目前尚不清楚PEM格式是否支持这一点,也不清楚如何使用标准Java库(JCA)实现这一点。大多数示例似乎都使用RSA 正确的方法是什么?或者有更好的方法吗?典型的ED25519密钥(私有和公共密钥)只是一个32字节长的字节数组,没有使用“PEM”格式。为了更好地进行交换和/或存储,您可以将密钥数据编码为Base64以获得字符串格式。当然,您可以用“--BEGIN PRIV

我正在尝试编写和读取一个PEM文件,该文件包含Java 15中Ed25519的
PublicKey
PrivateKey

然而,目前尚不清楚PEM格式是否支持这一点,也不清楚如何使用标准Java库(JCA)实现这一点。大多数示例似乎都使用RSA


正确的方法是什么?或者有更好的方法吗?

典型的ED25519密钥(私有和公共密钥)只是一个32字节长的字节数组,没有使用“PEM”格式。为了更好地进行交换和/或存储,您可以将密钥数据编码为Base64以获得字符串格式。当然,您可以用“--BEGIN PRIVATE KEY--”来包装该字符串,但这可能无法与外部交换。顺便说一句:很高兴知道Java 15现在支持Ed25519开箱即用,对于我的测试,我需要使用Bouncy Castle作为提供程序。谢谢,证实了我的怀疑,即该格式不直接支持Ed25519。有没有更好的标准格式来存储可交换的密钥对?通常只交换密钥字节,在大多数情况下,我看到它是使用简单的Base64编码完成的。@MichaelFehr-据我所知,在X.509/SPKI(public)或PKCS#8(private)中格式化Ed25519密钥并将其编码为PEM(或DER)并没有任何问题. OpenSSL生成这样的格式化密钥,例如(例如,
OpenSSL genpkey-算法Ed25519-out
用于私钥)。@Topaco:很高兴知道-我从未见过这种形式的Ed25519,谢谢。