【问题标题】:How can I use OpenSSL to encrypt a message using my public key and then decrypt it using my private key?如何使用 OpenSSL 使用我的公钥加密消息,然后使用我的私钥对其进行解密?
【发布时间】:2010-03-06 21:26:45
【问题描述】:

这是我尝试过的:

用我的公钥加密消息

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

使用我的私钥解密消息

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

解密出错

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

【问题讨论】:

  • enc - symmetric cipher routines 所以你应该使用rsautl

标签: encryption openssl public-key private-key


【解决方案1】:

此代码有效:

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

【讨论】:

  • 问题是你只能用它来加密小消息。如果您尝试加密超过密钥大小减去 11 个字节的任何内容,您将收到如下错误消息:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size
【解决方案2】:

供使用

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

您需要定义选项 -raw 以忽略填充:)

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

【讨论】:

    【解决方案3】:

    enc - symmetric cipher routines 所以你应该使用rsautl

    正确的解决方案:

    在发送方

    1. 生成密码
    2. 使用带有密码的 enc 加密您的消息
    3. 使用 rsautl 和公钥加密密码
    4. 发送编码的消息和编码的密码

    在接收端

    1. 使用 rsautl 和私钥解密密码
    2. 使用带有密码的enc 解密消息

    【讨论】:

      【解决方案4】:

      加密:

      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 文件的第一行包含您的密码。

      【讨论】:

      • 此方法使用简单的密码文本文件即可正常工作——但我需要使用我的公钥加密并使用我的私钥解密。
      • 这有效:openssl rsautl -pubin -inkey key.pub -encrypt -in message.txt -out message.enc openssl rsautl -inkey privkey.pem -decrypt -in message.enc -out 消息。十二月
      猜你喜欢
      • 2020-02-28
      • 2012-04-11
      • 2020-03-15
      • 2017-07-07
      • 2018-02-13
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多