c - Openssl RSA 中加密的字符串的最大大小

标签 c openssl rsa

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

最佳答案

假设您正在谈论<a href="http://www.openssl.org/docs/crypto/RSA_public_encrypt.html" rel="noreferrer noopener nofollow">RSA_public_encrypt()</a> ,文档说得很清楚:

flen must be less than RSA_size(rsa) - 11 for the PKCS #1 v1.5 based padding modes, less than RSA_size(rsa) - 41 for RSA_PKCS1_OAEP_PADDING and exactly RSA_size(rsa) for RSA_NO_PADDING.

请记住,这些是 block 加密,在一般情况下,您需要将输入拆分为 block ,并将这些 block 一次一个地提供给加密函数。

关于c - Openssl RSA 中加密的字符串的最大大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12176538/

相关文章:

android ndk c函数返回奇怪的值

c - 在没有库的情况下在 C 中使用 DLL

c - 如何缓解 strcat 和 strcmp 漏洞?

powershell - 安全的 openSSL 文件加密

c - C 中的 X509_NAME 宏无法编译

c - 为什么这条烦人的线会干扰我的输出?

node.js - 不断收到错误 :0906D06C:PEM routines:PEM_read_bio:no start line

java - RSA key 对不起作用

java - java/android 中的数字签名(RSA key )

ssl - 在安卓 Lollipop 上进行RSA解密