• 大小: 7.91MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-06
  • 语言: 其他
  • 标签: 数字签名  

资源简介

这是一个基于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


评论

共有 条评论