社区
Linux/Unix社区
帖子详情
Linux下使用openssl源码中的RSA加密算法
teat328
2011-03-09 03:53:36
openssl中集成了多种加密算法,包括对称加密,非对称加密,哈希等。最近的工作要在openssl的源码包中提取出RSA加密算法的代码,改写后,达到对文件加密解密的功能。
下载了openssl的源码包解压后,apps目录和crypto目录下都有相关RSA的代码。我该用哪一个?怎么才能编译通过?
对Linux下开发还不是太熟悉。。希望大虾们多多指点。。多谢。。
...全文
1037
4
打赏
收藏
Linux下使用openssl源码中的RSA加密算法
openssl中集成了多种加密算法,包括对称加密,非对称加密,哈希等。最近的工作要在openssl的源码包中提取出RSA加密算法的代码,改写后,达到对文件加密解密的功能。 下载了openssl的源码包解压后,apps目录和crypto目录下都有相关RSA的代码。我该用哪一个?怎么才能编译通过? 对Linux下开发还不是太熟悉。。希望大虾们多多指点。。多谢。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Tom_殇子
2012-04-18
打赏
举报
回复
编译的时候要加参数:-lcrypto 你试试看。你最好把报错的图给我看看。
平凡的思想者
2011-03-10
打赏
举报
回复
加密:
/*
gcc -o rsa-encrypt rsa-encrypt.c -lcrypto
*/
#include <openssl/rsa.h>
#include <openssl/err.h>
#define MODULUS "C8FBCF21"
#define PUBLIC_EXPONENT RSA_F4
#define PRIVATE_EXPONENT "97B55D7D"
int main()
{
int ret, flen;
BIGNUM *bnn, *bne, *bnd;
unsigned char *in = "abc";
unsigned char *out;
bnn = BN_new();
bne = BN_new();
bnd = BN_new();
BN_hex2bn(&bnn, MODULUS);
BN_set_word(bne, PUBLIC_EXPONENT);
BN_hex2bn(&bnd, PRIVATE_EXPONENT);
RSA *r = RSA_new();
r->n = bnn;
r->e = bne;
r->d = bnd;
RSA_print_fp(stdout, r, 5);
flen = RSA_size(r);// - 11;
out = (char *)malloc(flen);
bzero(out, flen);
//memset(out, 0, flen);
printf("Begin encrypt...\n");
ret = RSA_public_encrypt(flen, in, out, r, RSA_NO_PADDING);
if (ret < 0)
{
printf("Encrypt failed!\n");
return 1;
}
printf("Size:%d\n", ret);
printf("ClearText:%s\n", in);
printf("CipherText(Hex):\n");
int i;
for (i=0; i<ret; i++)
{
printf("0x%02x, ", *out);
out++;
}
printf("\n");
//free(out);
RSA_free(r);
return 0;
}
解密:
/*
gcc -o rsa-decrypt rsa-decrypt.c -lcrypto
*/
#include <openssl/rsa.h>
#define MODULUS "C8FBCF21"
#define PUBLIC_EXPONENT RSA_F4
#define PRIVATE_EXPONENT "97B55D7D"
int main()
{
int ret, flen;
BIGNUM *bnn, *bne, *bnd;
unsigned char in[] = {0x51, 0xc2, 0x8d, 0xc6};
unsigned char *out;
bnn = BN_new();
bne = BN_new();
bnd = BN_new();
BN_hex2bn(&bnn, MODULUS);
BN_set_word(bne, PUBLIC_EXPONENT);
BN_hex2bn(&bnd, PRIVATE_EXPONENT);
RSA *r = RSA_new();
r->n = bnn;
r->e = bne;
r->d = bnd;
RSA_print_fp(stdout, r, 5);
flen = RSA_size(r);
out = (unsigned char *)malloc(flen);
bzero(out, flen);
printf("Begin decrypt...\n");
ret = RSA_private_decrypt(sizeof(in), in, out, r, RSA_NO_PADDING);
if (ret < 0)
{
printf("Decrypt failed!\n");
return 1;
}
printf("Size:%d\n", ret);
printf("ClearText:%s\n", out);
free(out);
RSA_free(r);
return 0;
}
大牛~Daniel
2011-03-09
打赏
举报
回复
移植啊!这个要有点耐心,淡定!
「已注销」
2011-03-09
打赏
举报
回复
用crypto这个吧。。。
i.MX8MP开发板
OpenSSL
移植与优化指南
在嵌入式
Linux
开发
中
,安全通信是保障数据传输可靠性的关键技术。
OpenSSL
作为业界标准的加密工具包,提供了TLS/SSL协议实现及AES、
RSA
等核心
加密算法
,广泛应用于物联网设备与云端的安全通信。针对i.MX8MP这类高性能多核处理器,通过交叉编译将
OpenSSL
移植到开发板,不仅能满足智能电表等工业场景的数据加密需求,还能通过硬件加速模块显著提升性能。本文详细介绍了从环境配置、
源码
编译到性能优化的全流程,特别是针对嵌入式系统的存储空间和内存管理优化技巧,为开发者提供了一套完整的解决方案。
Chapter 2.
OpenSSL
的安装和配置学习笔记
Chapter 2.
OpenSSL
的安装和配置学习笔记 2.1 在
linux
上面安装
OpenSSL
我还是做点No paper事情比较在行,正好和老师的课程接轨一下。以前尝试过在Windows上面安装过
openSSL
,这次正好在
Linux
上面实现一下。 希望各位园友门纠错,征求意见
中
。 2.1.1 安装
OpenSSL
的系统环境和编译环境 测试环境:
Linux
MINT 16 Petra ...
linux
生成
rsa
公钥,在
Linux
下如何
使用
openssl
生成
RSA
公钥和私钥对
在《Java实现
RSA
密钥对并在加解密、加签验签
中
应用的实例》
中
,我们有用Java代码生成
RSA
密钥对,其实在
Linux
操作系统
中
,用
openssl
也是很容易生成密钥对的。一.如果在ubuntu上要
使用
openssl
的话需要先进行安装命令如下:sudo apt-get install
openssl
安装完成就可以
使用
openssl
了。二.进入
openssl
的交互界面,在命令行了输入
openssl
即...
探索
RSA
加密解密:C++与
OpenSSL
在Windows平台的完美结合
探索
RSA
加密解密:C++与
OpenSSL
在Windows平台的完美结合 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在信息安全领域,
RSA
加密算法
因其强大的安全性和广泛的应用而备受推崇。然而,许多初学者在尝试实现
RSA
加密解密时,往往会遇到诸多困难,尤其是在Windows平台上。为了解决这一问题,本项目提供了一个完整的C++
源码
示例,展示了如何通过
OpenSSL
库...
Linux
下
OpenSSL
的介绍和安装
1.
OpenSSL
简介
OpenSSL
是一个功能丰富及自包含的安全开源工具箱,它提供的主要功能为SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能,
OpenSSL
是一个以C语言作为开发语言的工具包,它支持
Linux
、UNIX、windows、Mac等平台,所以它具有很好
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章