尝试在OSX Yosomite 10.10.2上通过命令行加密文本消息
创建这样的.pem公钥:
ssh-keygen -f ~/.ssh/id_rsa.pub -e -t PKCS8 > id_rsa.pem
Run Code Online (Sandbox Code Playgroud)
如果我尝试加密myMessage.txt
openssl rsautl -encrypt -inkey ~/.ssh/id_rsa.pem -pubin -in ~/Desktop/myMessage.txt -out ~/Desktop/encrypted.txt
Run Code Online (Sandbox Code Playgroud)
我明白了 unable to load Public key
如果我然后输入:
openssl asn1parse -in id_rsa.pem
Run Code Online (Sandbox Code Playgroud)
返回: Error: offset too large
但我不知道如何解决它.我应该改变什么来使它工作?
car*_*mba 24
仍然不知道我的问题出了什么问题,但找到了解决方案:
1)生成RSA密钥:
$ openssl genrsa -out key.pem 1024 
$ openssl rsa -in key.pem -text -noout 
Run Code Online (Sandbox Code Playgroud)
2)将公钥保存在pub.pem文件中:
$ openssl rsa -in key.pem -pubout -out pub.pem 
$ openssl rsa -in pub.pem -pubin -text -noout 
Run Code Online (Sandbox Code Playgroud)
3)加密一些数据:
$ echo test test test > file.txt 
$ openssl rsautl -encrypt -inkey pub.pem -pubin -in file.txt -out file.bin 
Run Code Online (Sandbox Code Playgroud)
4)解密加密数据:
$ openssl rsautl -decrypt -inkey key.pem -in file.bin 
Run Code Online (Sandbox Code Playgroud)
它就像一个魅力
感谢Marek Marcola提供的信息http://openssl.6102.n7.nabble.com/Re-Can-I-use-my-own-keys-with-openssl-for-RSA-enc-dec-td12506. HTML
小智 5
我也遇到了这个问题,并认为这里有一个很好的提示:
如何在两种公钥格式之间进行转换,一种是“BEGIN RSA PUBLIC KEY”,另一种是“BEGIN PUBLIC KEY”
似乎 OpenSSL 加密命令需要 SSL 公钥而不是 RSA 公钥。
我们现在知道足够的信息来调整示例以使其工作。SSL 公钥可以从 RSA 公钥生成
openssl rsa -in id_rsa.pem -RSAPublicKey_in -pubout > id_pub.pem
Run Code Online (Sandbox Code Playgroud)
然后可以使用以下方法进行加密步骤
openssl rsautl -encrypt -inkey id_pub.pem -pubin -in ~/Desktop/myMessage.txt -out ~/Desktop/encrypted.txt
Run Code Online (Sandbox Code Playgroud)
在撰写本文时,MacOSX Yosemite 中的默认 OpenSSL 命令似乎是 0.9.8zg。此版本中的rsa命令不支持运行上述第一个命令的功能。我通过安装 OpenSSL 1.0.1p 解决了这个问题。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           24549 次  |  
        
|   最近记录:  |