【发布时间】:2017-12-13 15:01:25
【问题描述】:
函数 RSA_public_encrypt 要求保存加密文本的变量的长度应为 RSA_size(*rsa) 字节。 现在,我需要知道要加密的文本有多大,因为如果我加密一个小字符串(例如“asdasd”),没有问题,但如果我尝试使用更大的字符串,它的一部分就是加密.
【问题讨论】:
函数 RSA_public_encrypt 要求保存加密文本的变量的长度应为 RSA_size(*rsa) 字节。 现在,我需要知道要加密的文本有多大,因为如果我加密一个小字符串(例如“asdasd”),没有问题,但如果我尝试使用更大的字符串,它的一部分就是加密.
【问题讨论】:
假设您说的是@987654321@,文档中的表述非常清楚:
对于基于 PKCS #1 v1.5 的填充模式,flen 必须小于 RSA_size(rsa) - 11,对于 RSA_PKCS1_OAEP_PADDING 必须小于 RSA_size(rsa) - 41,对于 RSA_NO_PADDING 必须小于 RSA_size(rsa)。
请记住,这些是块加密,在一般情况下,您需要将输入拆分为块,并一次将一个块提供给加密函数。
【讨论】: