【问题标题】:RSA to encrypt 500 bytes of data using openssl libraryRSA 使用 openssl 库加密 500 字节数据
【发布时间】:2011-08-19 05:24:47
【问题描述】:

我正在使用 RSA 算法进行共享密钥加密/解密。我正在使用开放的 ssl 库和 c 语言。RSA_size() 返回 256 字节。密钥(要加密的数据)大小大于 256 字节但小于 500 字节。用于加密的 RSA 密钥大小为 1024。密钥对是使用 openssl 库生成的。 如果要加密的数据小于或等于 245 字节,则加密工作正常(因为填充)。否则我必须破坏数据(不确定是否可以,因为我正在尝试交换共享密钥)是否有任何其他方法可以增加RSA_size.my 代码在调用 rsa_public_encrypt 之前不调用 RAND_seed()(不确定要传递什么参数)。任何帮助表示赞赏。

【问题讨论】:

  • 为什么需要大于 256 字节 = 2048 位的密钥?

标签: c encryption openssl rsa


【解决方案1】:

您可以将数据分成块,或使用“seal”/“open”OpenSSL 函数。

他们所做的基本上是生成一组随机密钥,使用公钥加密密钥,然后使用这些密钥加密您想要的任何内容。这样您就不受特定大小的限制,解密也不会太慢(您只需使用 RSA 解密随机密钥,其余部分使用对称加密完成,因此速度要快得多)。

我建议你看看EVP_SealInit 和EVP_OpenInit。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多