资源简介
这是一个基于openssl库的对文件进行加密和数字签名的软件
代码片段和文件信息
#include “EDcode2.h“
//-------------------------------------------------------
EDcoder::EDcoder()
{
en_sfp=NULL;
en_ofp=NULL;
de_sfp=NULL;
de_ofp=NULL;
}
EDcoder::~EDcoder()
{
if(en_sfp!=NULL)
{
fclose(en_sfp);
en_sfp=NULL;
}
if(en_ofp!=NULL)
{
fclose(en_ofp);
en_ofp=NULL;
}
if(de_sfp!=NULL)
{
fclose(de_sfp);
de_sfp=NULL;
}
if(de_ofp!=NULL)
{
fclose(de_ofp);
de_ofp=NULL;
}
}
bool EDcoder::Open_en_sfp(char *filename)
{
en_sfp=fopen(filename“rb“);
if(en_sfp==NULL)
return false;
return true;
}
bool EDcoder::Open_en_ofp(char *filename)
{
en_ofp=fopen(filename“wb“);
if(en_ofp==NULL)
return false;
return true;
}
bool EDcoder::Open_de_sfp(char *filename)
{
de_sfp=fopen(filename“rb“);
if(de_sfp==NULL)
return false;
return true;
}
bool EDcoder::Open_de_ofp(char *filename)
{
de_ofp=fopen(filename“wb+rb“);
if(de_ofp==NULL)
return false;
return true;
}
bool EDcoder::Open_user_prikey(char *filename) // 打开用户私钥文件
{
user_prikey=fopen(filename“rb“);
if(user_prikey==NULL)
return false;
return true;
}
bool EDcoder::Open_user_pubkey(char *filename) // 打开用户公钥文件
{
user_pubkey=fopen(filename“rb“);
if(user_pubkey==NULL)
return false;
return true;
}
bool EDcoder::Open_server_prikey(char *filename) // 打开服务器私钥文件
{
server_prikey=fopen(filename“rb“);
if(server_prikey==NULL)
return false;
return true;
}
bool EDcoder::Open_server_pubkey(char *filename) // 打开服务器公钥文件
{
server_pubkey=fopen(filename“rb“);
if(server_pubkey==NULL)
return false;
return true;
}
void EDcoder::Gen_md5_sum(FILE *fp)
{
char buf[BUFLEN];
int read_lentotal_read_len=0;
int filelen;
MD5_CTX md5_ctx;
MD5_Init(&md5_ctx);
fseek(fp02);
filelen=ftell(fp);
fseek(fp00);
while(1)
{
read_len=fread(buf1BUFLENfp);
total_read_len+=read_len;
if(read_len==BUFLEN)
MD5_Update(&md5_ctxbufBUFLEN);
else
{
MD5_Update(&md5_ctxbufread_len);
break;
}
}
MD5_Final(MD5_sum&md5_ctx); //最终生成MD5校验码到MD5_sum
//cout< // 假如读文件长度跟文件本身长度不同就退出
if(total_read_len!=filelen)
{
cout<<“MD5 校验码阶段读文件错误!“< cout< return;
}
cout<<“MD5校验码生成“<
}
void EDcoder::Print_MD5()
{
// 打印MD5校验码
cout<<“MD5 sum code is: “;
for(int i=0;i<16;i++)
{
cout<>4);
cout< }
cout< }
void EDcoder::Gen_3des()
{
/* --- 生成Des随即密钥 --- */
if(RAND_status()!=1)
{
cout<<“PRNG引擎不工作了!“< return;
}
time_t t;
srand((unsigned)time(&t));
//_ossl_old_des_cblock key;
//des_random_key(&key); 这个旧的东西没问题,不过这里不合适
DES_cblock key1key2key3; //三重钥匙
int result1result2result3;
// 问题:三个生成的密钥一样,考虑修改随机生成器
result1 = DES_random_key(&key1);
result2 = DES_random_ke
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2004-06-24 22:46 EDcode2
文件 537 2004-06-06 23:12 EDcode2\EDcode2.dsw
文件 891 2004-06-17 23:11 EDcode2\203117.pri.key
文件 251 2004-06-17 23:11 EDcode2\203117.pub.key
文件 1354 2004-06-21 15:27 EDcode2\EDcode2.plg
文件 66560 2004-11-14 21:02 EDcode2\EDcode2.ncb
文件 13206 2004-06-21 11:58 EDcode2\CoderDefine.cpp
文件 4517844 2004-06-24 22:42 EDcode2\test.enc
文件 4517583 2004-06-21 12:01 EDcode2\test2.rar
文件 251 2004-05-22 00:30 EDcode2\server.pub.key
文件 1949 2004-06-21 15:25 EDcode2\EDcode2.cpp
文件 2599 2004-06-21 15:26 EDcode2\EDcode2.h
文件 4620 2004-06-21 15:27 EDcode2\EDcode2.dsp
文件 99328 2004-11-14 21:02 EDcode2\EDcode2.opt
-rw-r--r-- 227 2011-08-12 15:27 readme_verysource.com.txt
----------- --------- ---------- ----- ----
9227200 15
相关资源
- 数字签名和数字证书
- 数字签名编程实现
- 密码学实验全部题目+完整代码:Has
- PGP8.1破解版加汉化包
- 基于余数系统的sm2白盒数字签名
- dsa数字签名算法的验证及实现
- 清除数字签名工具
- NVMe固态硬盘通用驱动无数字签名证书
- 数字签名验证工具
- Windows软件数字签名makecert.exesigncode.
- firadisk64位带数字签名,免按F8
- 已数字签名的cfadisk_X64
- RSA数字签名设计与实现
- 一种数字签名系统的设计与实现
- signtool数字签名工具和cab制作工具
- 带数字签名Virtual USB Multikey64bit drive
- 数字签名清除工具
- dseo13b.exe
- MD5SHA1CRC32数字签名校验工具
- 从客户端调用capicom控件签名
- 密码学课程设计 一个简易的数字签名
- DSA Tools v13
- 数字签名算法DSS
- RSA数字签名源程序
- CA数字签名认证系统解决方案
- win8 USB Blaster 驱动 带数字签名 通杀
- 国密SM2算法基于Openssl实现
- 禁用Windows7强制驱动数字签名
- capicom操作证书的源代码
- 彻底关闭win10数字签名.rar
评论
共有 条评论