2010-03-06 17 views
3

以下是我已經嘗試:用我的私鑰如何使用OpenSSL使用我的公鑰對消息進行加密,然後使用我的私鑰對其進行解密?

openssl enc -d -aes-256-cbc -salt -in message.enc -pass file:mykey.pem 

錯誤從解密

加密郵件瓦特/我的公鑰

openssl enc -aes-256-cbc -salt -kfile key.pub -in message.txt -out message.enc 

解密消息

bad decrypt 
452:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:330: 
+1

'enc - 對稱密碼程序'所以你應該使用'rsautl' – atn 2016-08-29 15:52:21

回答

0

加密:

openssl enc -aes-256-cbc -salt -pass file:password.txt -in message.txt -out message.enc 

解密:

openssl enc -aes-256-cbc -d -salt -pass file:password.txt -in message.enc -out message.dec 

該文件password.txt的第一行包含您的密碼。

+0

這種方法使用簡單的密碼文本文件工作正常 - 但我需要使用我的公鑰加密和使用我的私人密鑰解密。 – 2010-03-06 21:56:01

+0

這工作: OpenSSL的rsautl -pubin -inkey key.pub -encrypt -in message.txt退房手續message.enc OpenSSL的rsautl -inkey privkey.pem -decrypt -in message.enc退房手續message.dec – 2010-03-06 23:15:39

4

此代碼:

openssl rsautl -pubin -inkey key.pub -encrypt -in message.txt -out message.enc 

openssl rsautl -inkey privkey.pem -decrypt -in message.enc -out message.dec 
+2

問題這是你只能用它來加密小消息。如果您嘗試對密鑰大小減去11個字節進行加密,則會收到如下錯誤消息:rsa例程:RSA_padding_add_PKCS1_type_2:數據對於密鑰大小過大 – 2010-09-23 19:48:55

1

對於使用

OpenSSL的rsautl -pubin -inkey key.pub -encrypt -in message.txt退房手續message.enc

您需要定義選項-raw以忽略填充:)

openssl rsautl -pubin -inkey key.pub -encrypt -in message.txt -out message。ENC -raw

1

enc - symmetric cipher routines所以你應該使用rsautl

正確的解決方案:

在發送方

  1. 生成密碼
  2. 用密碼加密
  3. 使用 enc您的留言使用 rsautl與公鑰
  4. 發送編碼信息和編碼的密碼

在接收端

  • 加密密碼

      使用 rsautl使用 enc與私鑰
    1. 解密消息
    2. 解密密碼密碼
  • 相關問題