Keytool EC KeyPairGenerator 不可用
Keytool EC KeyPairGenerator not available
当我使用 keytool 通过 ECC 生成密钥时,我得到这个 error:
Error keytool: java.security.NoSuchAlgorithmException: EC KeyPairGenerator not available
那么用于生成密钥的语法是:
keytool -genkey -alias testing -keyalg EC -keysize 256 -keystore try.jks -dname "CN=localhost,OU=dep,O=lks,L=ny,ST=ny,C=USA"
我有这个 Java 版本:
openjdk version "1.8.0_60"
OpenJDK Runtime Environment (build 1.8.0_60-b16)
OpenJDK 64-Bit Server VM (build 25.60-b16, mixed mode)
此错误表明您的 EC 安全提供程序丢失,请执行以下操作以添加它:
- 编辑文件"jdk1.8.0_65\lib\security\java.security"
- 搜索 "List of providers and their preference order"
- 将 "security.provider.[Last security provider id +1]=sun.security.ec.SunEC" 添加到安全提供商列表。
有关 sunEC 安全提供程序的更多详细信息,请参阅此 link。
我通过阅读以下 article(由用户@QuakeCore 链接)解决了这个问题。如果有人有同样的问题,he/she可以按照我的步骤解决:
- 下载 Java Oracle (tar.gz);
- 将文件
jdk1.8.0_*/jre/lib/amd64/libsunec.so
从提取的文件夹复制到 /usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/amd64/libsunec.so
;
- 使用我原来问题中写的语法生成密钥。
我在 Ubuntu 16.04 与 pepk (Play Encrypt Private Key)
有同样的错误。
我用接近 CipherX 答案的解决方案解决了这个问题:
- 下载 Java Oracle (tar.gz)
- 提取文件
- 不是启动安装在系统上的
java
,而是从提取的文件中启动 java
:
~/Downloads/android/jdk-9.0.1/bin/java -jar pepk.jar --keystore=acme.keystore \
--alias=acme --output=encrypted_private_key_path --encryptionkey=eb…
Error: EC KeyPairGenerator not available
错误消失了。
当我使用 keytool 通过 ECC 生成密钥时,我得到这个 error:
Error keytool: java.security.NoSuchAlgorithmException: EC KeyPairGenerator not available
那么用于生成密钥的语法是:
keytool -genkey -alias testing -keyalg EC -keysize 256 -keystore try.jks -dname "CN=localhost,OU=dep,O=lks,L=ny,ST=ny,C=USA"
我有这个 Java 版本:
openjdk version "1.8.0_60"
OpenJDK Runtime Environment (build 1.8.0_60-b16)
OpenJDK 64-Bit Server VM (build 25.60-b16, mixed mode)
此错误表明您的 EC 安全提供程序丢失,请执行以下操作以添加它:
- 编辑文件"jdk1.8.0_65\lib\security\java.security"
- 搜索 "List of providers and their preference order"
- 将 "security.provider.[Last security provider id +1]=sun.security.ec.SunEC" 添加到安全提供商列表。
有关 sunEC 安全提供程序的更多详细信息,请参阅此 link。
我通过阅读以下 article(由用户@QuakeCore 链接)解决了这个问题。如果有人有同样的问题,he/she可以按照我的步骤解决:
- 下载 Java Oracle (tar.gz);
- 将文件
jdk1.8.0_*/jre/lib/amd64/libsunec.so
从提取的文件夹复制到/usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/amd64/libsunec.so
; - 使用我原来问题中写的语法生成密钥。
我在 Ubuntu 16.04 与 pepk (Play Encrypt Private Key)
有同样的错误。
我用接近 CipherX 答案的解决方案解决了这个问题:
- 下载 Java Oracle (tar.gz)
- 提取文件
- 不是启动安装在系统上的
java
,而是从提取的文件中启动java
:
~/Downloads/android/jdk-9.0.1/bin/java -jar pepk.jar --keystore=acme.keystore \
--alias=acme --output=encrypted_private_key_path --encryptionkey=eb…
Error: EC KeyPairGenerator not available
错误消失了。