openssl RSA基本加密解密

2023-10-27

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <openssl/bn.h>
#include <openssl/rsa.h>
#include <openssl/pem.h>

int main(int argc, char *argv[])
{
  // 产生RSA密钥对
  RSA *rsaKey = RSA_generate_key(1024, 65537, NULL, NULL);

	int keySize = RSA_size(rsaKey);
	
	char fData[]="aaabbbccdskjkfd";
	char tData[128];
	
	int  flen = strlen(fData);
	//flen = 15
		
	int ret =  RSA_public_encrypt(flen, (unsigned char *)fData, (unsigned char *)tData, rsaKey,  RSA_PKCS1_PADDING);
	//ret = 128
		
	ret = RSA_private_decrypt(128, (unsigned char *)tData, (unsigned char *)fData, rsaKey, RSA_PKCS1_PADDING);
	//ret = 15
		
	RSA_free(rsaKey);
	return 0;   
}


VC6.0编译通过

RSA_generate_key产生密钥对
参数一:密钥长度是 1024bit (小于1024被认为是不安全的)
参数二:公开的加密指数,通常是一个奇数,一般为3, 17 or 65537
后两个参数,回调函数和回调函数的参数&#x

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openssl RSA基本加密解密 的相关文章

随机推荐

  • 【BEV】BEVDet

    BEVDet 解析 BEVDet 模型 bevdet r50 训练配置 Scale NMS 优化配置 推理记录 注册 随机种子 总结 BEVDet BEVDet继承于CenterPoint gt MVTwoStageDetector 模型实
  • 射频工程师笔记---射频通信基础

    文章更新或问题可关注本人公众号 回顾一下移动通信技术的发展 其实是互联网和通信技术的融合过程 在这个过程中 很多应用都在不断加入其中 比如计算机跟通信的融合产生了互联网 互联网跟手机的融合带来了移动互联网 手机可以看杂志 看视频 听音乐 于
  • SpringCLoud——服务的拆分和远程调用

    服务拆分 服务拆分注意事项 一般是根据功能的不同 将不同的服务按照功能的不同而分开 微服务拆分注意事项 不同微服务 不要重复开发相同业务 微服务数据独立 不要访问其他微服务的数据库 微服务可以将自己的业务暴露为接口 供其他微服务调用 远程调
  • C++ 数据结构与算法(五)(哈希表)

    哈希表 1 定义 哈希表 Hash table 也称散列表 是根据关键码的值而直接进行访问的数据结构 一般哈希表都是用来快速判断一个元素是否出现集合里 只需要在初始化时用哈希函数 hash function 将这些元素映射在哈希表的索引上
  • WJ的Direct3D简明教程2:Render-To-Texture

    转载请注明 来自http blog csdn net skyman 2001 Rendering to a texture is one of the advanced techniques in Direct3D On the one h
  • Unity绘制户型(一)

    户型绘制主要对象数据 点 线 面 部件 门窗 主要难点是通过绘制的点寻找闭合多边形 多边形的生成 3D墙体的生成 门窗要在墙体上留下孔洞这四个功能 这篇文章我只写前两个问题 后面来两个问题单独再写一篇文章 1 如何寻找闭合多边形 我的方法是
  • 内容管理系统测试实战

    使用django和restframework开发接口 使用postman测试接口 使用unittest和requests模块测试接口 目录 Django安装 Django Rest Framework 创建API应用 数据库迁移 创建超级管
  • C++11中pair的用法

    概述 pair可以将两个数据组合成一种数据类型 C 标准库中凡是必须返回两个值的函数都使用pair pair有两个成员变量 分别是first和second 由于使用的struct而不是class 因此可以直接访问pair的成员变量 基本用法
  • Python_某宝某东秒杀抢购

    纯学习分享 只用于学习用途 请勿用于任何商业用途 本人不承担任何责任 视频编写过程 某宝秒杀程序 某宝源码 from selenium import webdriver from selenium webdriver common by i
  • springboot配置shiro多项目实现session共享的详细步骤

    springboot配置shiro多项目实现session共享的详细步骤 项目的配置步骤我已写到另一篇文章中 shiro框架 多项目登录访问共享session的实现 springboot redis shiro 的实现项目已共享到GitHu
  • 关于Tomcat端口被占用的情况

    今天打开eclipse突然发现运行不了 报错的提示为 Several ports 8005 8080 8009 required by Tomcat v7 0 Server at localhost are already in use 有
  • Android studio遇到问题:Emulator: PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT

    前言 在使用android studio时 配置模拟器的时候一直在报错这个 然后网上找到问题 并实际解决了问题 在这里记录下 目录 问题原因 没有配置环境的情况下 是因为他默认找的是这个路径的AVD 问题很明显了 中文路径导致的 C Use
  • Vue路由 传参几种方式

    动态路由传参 path detail username name a component gt import components Detail vue
  • windows server 2012 安装gooderp

    概述 这是我安装的第一个erp系统 为什么选择gooderp 因为它是开源的 个人认为还是不错的一个erp系统 windows上安装完全是傻瓜式的安装 介绍下环境 我使用的是阿里云的windows server 2012 为了安全呢最好更新
  • 前端浏览器常见兼容性问题及解决方案

    目录 1 最常见的 每个浏览器的默认margin padding大小都不同 当设置定位时会有些许差异 2 图片默认有间距 当几个img标签放到一起时 有些浏览器会有默认间距 加上第一条的设置的通配符样式也无用 3 min height问题
  • mc服务器查看死亡位置,我的世界查询死亡地点指令

    发布时间 2016 06 01 很多朋友在玩我的世界这款游戏时总会有各种意外死亡发生 今天蚕豆网小编带给大家的是我的世界死亡后怎么才能使东西不掉落的方法 游戏中的设定死亡后 你身上的物品会掉落在地上 需要快速的捡回 要不然东西就会消失 那么
  • goto语句在工作当中的用法

    前言 goto语句在C语言编程中是比较少用的 在学习C语言时老师也告诉要少用 有的甚至说别用 后来再工作当中 看到了前辈写的代码里用了goto语句 顿时感到goto语句的精妙 遂在此记录 goto语句能使用 不过要慎用 应为C语言的代码中大
  • 爬虫:json()数据解析(Request Method:GET)

    有一些网页会直接把所有的关键信息都放在HTML中请求 尤其是一些比较老 或比较轻量 的网站 我们用requests和BeautifulSoup就能解决它们 比如豆瓣 而有些数据请求则通过Fetch XHR传送 这些数据并不能直接在HTML页
  • Git 常用命令大全

    一 Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch a 查看所有的分支git branch r 查看远程所有分支git commit am i
  • openssl RSA基本加密解密

    include