当前位置: 首页 > 知识库问答 >
问题:

OpenSSL无法加载公钥

沈翰
2023-03-14

试图通过OSX Yosomite 10.10.2上的命令行加密文本消息

创建公共。pem如下键:

ssh-keygen -f ~/.ssh/id_rsa.pub -e -t PKCS8 > id_rsa.pem

如果我试图加密myMessage.txt

openssl rsautl -encrypt -inkey ~/.ssh/id_rsa.pem -pubin -in ~/Desktop/myMessage.txt -out ~/Desktop/encrypted.txt

我得到无法加载公钥

如果我随后键入:

openssl asn1parse -in id_rsa.pem

返回错误:偏移量太大

但是我不知道如何修理它。我应该改变什么才能让它发挥作用?

共有3个答案

林雅畅
2023-03-14

当我从证书中提取公钥时,我也遇到了同样的问题。

openssl x509 -pubkey -noout -in cert.crt > pubKey.pem

之后,我想用下面的命令打印有关密钥的信息。

openssl rsa -text -pubin -in pubKey.pem

并得到一个错误:无法加载公钥

解决方案

我在记事本上打开了pubKey.pem,在编码菜单中选择了UCS-2 LE BOM。所以我把它改成了UTF-8编码。改变编码后,pubKey.pem的大小是原来的一半。然后它像魅力一样工作。

在Windows和PowerShell中测试

陈宜修
2023-03-14

我也面临着这个问题,我认为这里有一个很好的提示:

如何在“BEGIN RSA公钥”和“BEGIN公钥”这两种公钥格式之间进行转换

OpenSSL加密命令似乎想要SSL公钥而不是RSA公钥。

我们现在知道了足够多的信息来调整示例以使其生效。SSL公钥可以通过RSA公钥生成

openssl rsa -in id_rsa.pem -RSAPublicKey_in -pubout > id_pub.pem

然后,可以使用执行加密步骤

openssl rsautl -encrypt -inkey id_pub.pem -pubin -in ~/Desktop/myMessage.txt -out ~/Desktop/encrypted.txt

在撰写本文时,MacOSX Yosemite中的默认OpenSSL命令似乎是0.9。8zg。此版本中的rsa命令不支持运行上述第一个命令。我通过安装OpenSSL 1.0解决了这个问题。1便士。

罗波鸿
2023-03-14

仍然不知道我的问题出了什么问题,但找到了解决方案

1) 生成RSA密钥:

$ openssl genrsa -out key.pem 1024 
$ openssl rsa -in key.pem -text -noout 

2) 在pub中保存公钥。pem文件:

$ openssl rsa -in key.pem -pubout -out pub.pem 
$ openssl rsa -in pub.pem -pubin -text -noout 

3) 加密某些数据:

$ echo test test test > file.txt 
$ openssl rsautl -encrypt -inkey pub.pem -pubin -in file.txt -out file.bin 

4) 解密加密数据:

$ openssl rsautl -decrypt -inkey key.pem -in file.bin 

它就像一个咒语

感谢Marek Marcola提供的信息http://openssl.6102.n7.nabble.com/Re-Can-I-use-my-own-keys-with-openssl-for-RSA-enc-dec-td12506.html

 类似资料:
  • null 来自apache PHP警告:PHP启动:无法加载动态库“OpenSSL”(尝试:/usr/lib/PHP/20170718/openSSL(/usr/lib/PHP/20170718/openSSL:无法打开共享对象文件:没有这样的文件或目录),/usr/lib/PHP/20170718/openSSL.so(/usr/lib/PHP/20170718/openSSL.so:无法打开共

  • 这是密码。没有警告,文件正常。

  • 我使用PuTTY密钥生成器生成了一个4096位RSA-2密钥,其中包含一个密码短语。 我保存了. ppk和一个openSSL格式的公钥。油灰格式公钥不起作用。 无论如何,我的错误如下: 有什么问题吗? 我使用Pageant来加载密钥,我使用Git Bash来尝试ssh连接。我也把密钥加载到GitHub,不知道我做错了什么。 我尝试在GitHub中添加新行,但没有添加新行

  • 谁能帮帮我吗?我试图在我的Mac上使用在我的环境中运行Python自动化测试,但出现了这样一个错误: 库未加载:/usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib 但在执行测试期间仍有相同的错误:

  • 问题内容: 当我尝试运行Hibernate时,我在控制台中收到以下消息。 但是hibernate状态很好。我的项目有什么问题吗?我使用Eclipse(Helios),Hibernate 3.6.8。我使用这些jar文件:antlr-2.7.6,commons- collections-3.1,dom4j-1.6.1,hibernate3,hibernate- jpa-2.0-api-1.0.1.F

  • 我正在运行RSTudio版本1.1.442和r3.5。当我尝试加载rJava时,我得到以下错误; 库(rJava)错误:“r Java”的包或命名空间加载失败:“r Java”的.OnLoad在loadNamespace()中失败,详细信息:调用:dyn.load(文件,DLLpath=DLLpath,...)错误:无法加载共享对象“/library/framework/r.framework/v