openssl C语言编码实现rsa加密

本文介绍了如何利用openssl命令行工具生成RSA密钥对,并详细阐述了使用公钥加密文件及私钥解密文件的过程。同时,提到了通过C语言调用openssl API进行加密解密的可能性。
摘要由CSDN通过智能技术生成
  1. 首先介绍下命令台下openssl工具的简单使用:
      1)生成一个密钥:
      openssl genrsa -out test.key 1024
      这里-out指定生成文件的。需要注意的是这个文件包含了公钥和密钥两部分,也就是说这个文件即可用来加密也可以用来解密。后面的1024是生成密钥的长度。
      2)openssl可以将这个文件中的公钥提取出来:
      openssl rsa -in test.key -pubout -out test_pub.key
      -in指定输入文件,-out指定提取生成公钥的文件名。至此,我们手上就有了一个公钥,一个私钥(包含公钥)。现在可以将用公钥来加密文件了。
      
      3)在目录中创建一个hello的文本文件,然后利用此前生成的公钥加密文件:
      openssl rsautl -encrypt -in hello -inkey test_pub.key -pubin -out hello.en
       -in指定要加密的文件,-inkey指定密钥,-pubin表明是用纯公钥文件加密,-out为加密后的文件。
      4)解密文件:
      openssl rsautl -decrypt -in hello.en -inkey test.key -out hello.de
      -in指定被加密的文件,-inkey指定私钥文件,-out为解密后的文件。
       至此,一次加密解密的过程告终。

  2. 采用API加密

1. 本程序使用2048位密钥对,每次加密时,原始数据的最大长度为245字节,加密后的密文长度为256字节.(采用打PADDING 的加密方式)
2. 如果所加密数据长度大于245字节,请分多次加密,后将密文按顺序存储;解密时,每次读取256字节,进行解密,将解密后的数据依次按顺序存储,即可还原原始数据.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <openssl/rsa.h>
#include <openssl/pem.h>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值