RSA是公钥密码体制的典范,在本实验中,我们的将使用OpenSSL自带的RSA相关函数生成RSA加密体系。下面是可能要使用到的一些函数说明。
(1)RSA *RSA_generate_key(int bits, unsigned long e_value, void (callback)(int, int, void ), void *cb_arg)
函数功能:生成RSA密钥对。
参数说明:
bits:int数据类型,表示模数比特数,目前至少应使用1024或2048。
e_value:unsigned long数据类型,表示公钥指数e,建议该值使用OpenSSL提供的两个常数RSA_3或者RSA_F4。
callback回调函数由用户实现,用于报告密钥生成状态的回调函数,可为空。
其中RSA的结构为:
struct rsa_st
{
/* 其他 */
const RSA_METHOD *meth;
ENGINE *engine;
BIGNUM *n; //参数n
BIGNUM *e; //参数e
BIGNUM *d; //参数d
BIGNUM *p;
BIGNUM *q;
BIGNUM *dmp1;
BIGNUM *dmq1;
BIGNUM *iqmp;
CRYPTO_EX_DATA ex_data;
int references;
/* 其他数据项 */
}RSA;
(2)RSA_public_encrypt(int flen,unsigned char * from,unsigned char * to ,RSA *rsa,in padding);
函数功能:公钥加密,使用rsa里面的公钥,加密从from(通常是一个会话密钥)来的flen字节到to里面
参数说明:
flen:待加密的明文长度
from:待加密的明文
to:存储密文的指针
rsa:提供加密过程使用到的公钥等参数
padding:加密模式,最常用的加密模式是RSA_PKCS1_PADDING
返回值:加密得到的密文的字节数
(3)RSA_private_decrypt(int flen,unsigned char * from,unsigned char * to ,RSA *rsa,in padding);
函数功能:私钥加密,使用rsa里面的私钥,解密从from(通常是一个会话密钥)来的flen字节到to里面
参数说明:
flen:待解密的密文长度
from:待解密的密文
to:存储加密后明文的指针
rsa:提供解密过程使用到的私钥等参数
padding:解密密模式,需要与加密模式保持一致,最常用的加密模式是RSA_PKCS1_PADDING
返回值:解密得到的明文字节数
(4)void RSA_free(RSA *rsa);
函数功能:释放RSA对象
参数说明:
rsa待释放的对象指针
详细解决方案
OPENSSL RSA加密算法API
热度:31 发布时间:2024-01-04 02:17:08.0
相关解决方案
- 有哪位高手对Java或者C的 数字签名 cer证书 密钥 加密算法 这些技术熟悉和了解的,能否简单介绍一下
- 有哪位高手对Java或者C的 数字签名 cer证书 密钥 加密算法 这些技术熟悉和了解的,能否简单介绍一上
- 加密算法,该如何处理
- 加密算法,涉及到字符串和二进制的转换,请问
- Qt本地加密(openssl rsa)unsigned char* to QString,该如何解决
- linux下安装nginx的error: the HTTP cache module requires md5 functions from OpenSSL library.
- git pull报错:error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
- 网络安全(11)——加密算法(6)——DES(1)——AES(1)——C#中使用DES和AES加密解密
- 网络安全(10)——加密算法(5)——安全性问题(难)
- 网络安全(9)——加密算法(4)——MD5(3)——计算文件 MD5 值的方法和计算字符串 MD5 值的方法
- 网络安全(2)——加密算法(1)——MD5(1)——C#实现MD5加密
- openssl req 证书请求及自签名证书
- Laravel5.5/6 报错call to undefined function openssl cipher iv length()
- 解决configure: error: OpenSSL Crypto library not found
- openssl TXT_DB error number 2 failed to update database
- 支付宝SDK---openssl rsa.h file not found
- 加密算法、DES、IDEA、RSA、DSA
- 解决 Cannot find OpenSSL's
- 升级openssh、openssl
- OPENSSL RSA加密算法API
- 使用keytool + openssl 生成自签名的tomcat服务器证书
- DES加密 (Byte[]加密算法) 可以自定义 key 默认采用密钥:wcun5515 ,(密钥为:生活网提供)...
- 《openssl 编程》之 RSA
- OpenSSL v0.9.8a随机数发生器分析之三——熵采集
- OpenSSL v0.9.8a随机数发生器分析之一——基本情况与内部状态
- openssl rsa应用与分析
- MAC OpenSSL: OpenSSL CA Signing Error field needed to be the same in the CA certificate
- 实验:openssl 签名和验证
- [转载]加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用