废话不多说, 直接说怎么写代码
编译的时候如何包含库文件这种事情就不说了.
第一步, 包含头文件.
#include <openssl/rsa.h> // 既然是RSA加密该头文件肯定是需要的
#include <openssl/bn.h> // 这个头文件用于RSA的公钥私钥生成中, 生成大数用的
#include <openssl/pem.h> // 这个是用于将公钥私钥保存成pem文件用的
// 其它所需的头文件会被上述三个头文件自动包含, 比如bio.h
第二步, 生成公钥私钥文件
首先说明一下, 在RSA的私钥中, 既包含私钥信息也包含公钥信息
也就是说, 所谓的公钥, 其实就是私钥的一部分
要生成公钥私钥文件, 可是使用openssl的可执行文件openssl, 通过命令行的形式执行
# 生成私钥文件key.pem, 2048是密钥的位数
openssl genrsa -out key.pem 2048
# 基于私钥文件key.pem提取公钥文件key.pub.pem
openssl rsa -in key.pem -pubout -out key.pub.pem
除了上述使用工具, 也可以使用代码生成, 这里说一下代码生成的方法:
// 生成基本的RSA密钥数据很简单, 使用下面四句话即可
RSA* rsa = RSA_new();
BIGNUM* e = BN_new();
BN_set_word(e, 65537); // 65537是官方推荐的一个数字, 其实任意素数都是可以的
RSA_generate_key_ex(rsa, 2048, e, 0)<

本文介绍了如何使用OpenSSL1.1.1的libcrypto库进行RSA加密和解密数据,包括如何生成公钥私钥文件、加密解密的限制及实现关键代码。需要注意的是,加密内容长度受限于密钥长度,且公钥加密必须用私钥解密,反之亦然。为了加密长数据,可以采用分段加密的方法。
最低0.47元/天 解锁文章
860

被折叠的 条评论
为什么被折叠?



