2012-08-29 25 views
0

函数RSA_public_encrypt要求保存加密文本的变量的长度应为RSA_size(* rsa)个字节。 现在,我需要知道加密文本有多大,因为如果我加密了一些字符串(例如“asdasd”),没有问题,但是如果我尝试使用更大的字符串,只是其中的一部分隐窝。用于在Openssl中加密的字符串的最大大小RSA

回答

1

假设你正在谈论RSA_public_encrypt(),该文档说明它非常清楚:

FLEN必须小于RSA_size(RSA) - 11为PKCS#1 V1.5基于填充模式,小于RSA_size(rsa) - 41表示RSA_PKCS1_OAEP_PADDING,而RSA_NO_PADDING表示RSA_size(rsa)。

请记住,这些是块密码,在一般情况下,您需要将输入拆分为块并逐个将块输入加密函数。

+0

非常感谢。还有一个问题。 RSA_size()的值取决于什么?如果我在RSA_generate_key(1024,17,NULL,NULL)之后调用它;它总是返回128.为什么? – giozh

+0

@giozh:1024是模数位长度; 1024/8 = 128是模数的字节长度。 –

+0

好,非常感谢。 – giozh