社区
Linux/Unix社区
帖子详情
Linux下使用openssl源码中的RSA加密算法
teat328
2011-03-09 03:53:36
openssl中集成了多种加密算法,包括对称加密,非对称加密,哈希等。最近的工作要在openssl的源码包中提取出RSA加密算法的代码,改写后,达到对文件加密解密的功能。
下载了openssl的源码包解压后,apps目录和crypto目录下都有相关RSA的代码。我该用哪一个?怎么才能编译通过?
对Linux下开发还不是太熟悉。。希望大虾们多多指点。。多谢。。
...全文
970
4
打赏
收藏
Linux下使用openssl源码中的RSA加密算法
openssl中集成了多种加密算法,包括对称加密,非对称加密,哈希等。最近的工作要在openssl的源码包中提取出RSA加密算法的代码,改写后,达到对文件加密解密的功能。 下载了openssl的源码包解压后,apps目录和crypto目录下都有相关RSA的代码。我该用哪一个?怎么才能编译通过? 对Linux下开发还不是太熟悉。。希望大虾们多多指点。。多谢。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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这个吧。。。
c++通过
openssl
实现
rsa
加密解密【windows版】
c++通过
使用
openssl
实现
rsa
加密解密算法,网上有很多文章和例子,但是大部分都是
linux
版的,并且内容不全、代码老旧等各种问题,导致最后无法调试,这里提供的
源码
是用code::blocks编写的c++
源码
,可以直接运行【windows版】
OpenSSL
RSA
AES加密解密C++
源码
OpenSSL
RSA
AES加密解密C++
源码
Delphi
RSA
加密与解密
OpenSSL
Delphi
RSA
加密与解密
OpenSSL
概述 本资源提供了在Delphi 7环境下实现
RSA
加密与解密的解决方案,特别适用于需要处理较大文本数据安全传输的应用场景。利用著名的加密库
OpenSSL
,此程序确保了数据的安全交换能力,突破了传统的128字节限制,适用于对安全性有高要求的Delphi应用开发。 特性 环境兼容:完全兼容Delphi 7,适合老项目升级或维持老版本开发需求。
OpenSSL
集成:集成了强大的
OpenSSL
库,增强加密强度和安全性。 大文本加密:支持加密和解密超过128字节的文本,满足大数据量加密需求。
源码
可用:提供完整的源代码,便于理解和自定义修改。 教程指导:可能包含简要说明文档或示例,帮助快速上手。
使用
前提 Delphi 7安装:确保你的开发环境
中
已经安装了Delphi 7。
OpenSSL
库:需要预先配置好
OpenSSL
库,包括头文件和库文件路径,以便于编译项目。 快速入门 下载资源:从指定位置下载提供的资源包。 配置环境:确保开发环境已正确配置了
OpenSSL
相关依赖。 导入项目:将下载的项目文件导入到Delphi 7
中
。 编译与运行:按照提供
RSA
非对称加密解密Delphi
源码
RSA
非对称加密解密Delphi
源码
,亲测XE10.2.3可用!
RSA
控件,内含密钥对生成,无须DLL!
C语言不
使用
openssl
实现
RSA
4096
使用
C语言实现
rsa
4096的加密解密操作,并将加密后的结果进行base64编码,解密之前先
使用
base64解码,再进行解密操作。私钥公钥操作分为两个工程,互不干扰
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章