在做RSA加密解密时,python程序生成和使用的公钥私钥文件是pkcs1标准的,java程序生成和使用的公钥私钥文件是pkcs8标准的,这就导致python程序写的加密解密程序,其公钥私钥发给java写的加密解密程序去进行RSA加密解密操作是不行的。好在pkcs1和pkcs8标准的秘钥文件有明显的区别,程序运行时会抛出明确的异常信息,提示秘钥标准不对。
那么,如何将python程序生成的公钥私钥对(pcks1标准秘钥文件)转换成java能使用的pkcs8标准的文件呢?
开发环境:windows + git bash + openssl
将 private.pem存储的pcks1标准的私钥文件转换成pcks8标准的私钥文件:
openssl pkcs8 -topk8 -inform PEM -in private.pem -outform pem -nocrypt -out pk cs8_private.pem |
公钥同理转换,当然私钥转好了的情况下可以直接使用openssl指令生成公钥:
openssl rsa -in pkcs8_private.pem -pubout -out pkcs8_public.pem