?? edcode2.h
字號:
#ifndef H_EDCODE2
#define H_EDCODE2
#include<iostream.h>
#include<io.h>
#include<iomanip.h>
#include<openssl/rsa.h>
#include<openssl/x509.h>
#include<openssl/pem.h>
#include<openssl/des.h>
#include<openssl/rand.h>
#include<openssl/evp.h>
#include<time.h>
/********************
* 常量 *
********************/
const int BUFLEN=1024;
/***************************
* EDcoder拋出的異常 *
***************************/
/*
class Err_edcoder
{
protected:
int err_id; // 錯誤號碼
public:
Err_edcoder(int id){ err_id = id; }
int getErrid(){ return err_id; }
};
*/
/********************
* EDcoder主體 *
********************/
class EDcoder
{
protected:
FILE *en_sfp,*en_ofp; // 加密:en_sfp為源fp;en_ofp為目標fp
FILE *de_sfp,*de_ofp; // 解密:de_sfp為源fp;de_ofp為目標fp
FILE *user_prikey,*user_pubkey; // 用戶密鑰
FILE *server_prikey,*server_pubkey; // 服務器密鑰
unsigned char MD5_sum[MD5_DIGEST_LENGTH]; // MD5 校驗碼
unsigned char DES_key[24]; // 3DES 密鑰
RSA *pri_rsa,*pub_rsa;
unsigned char MergeKey[40]; // 3DES 密鑰和MD5 校驗碼合成的字符串
unsigned char Sign[128]; // 用用戶私鑰加了密的MergeKey,得到簽名
unsigned char enSign[256]; // 用服務器公鑰加了密的簽名,得到加密簽名
public:
/*************************
* 通用函數 *
*************************/
EDcoder();
~EDcoder();
bool Open_en_sfp(char *filename); // 加密:打開源文件
bool Open_en_ofp(char *filename); // 加密:打開目標文件
bool Open_de_sfp(char *filename); // 解密:打開加了密的文件
bool Open_de_ofp(char *filename); // 解密:打開解密后數據存放的文件
bool Open_user_prikey(char *filename); // 打開用戶私鑰文件
bool Open_user_pubkey(char *filename); // 打開用戶公鑰文件
bool Open_server_prikey(char *filename); // 打開服務器私鑰文件
bool Open_server_pubkey(char *filename); // 打開服務器公鑰文件
void Print_MD5();
void Print_3DES();
int Encrypt(char *srcfile,char *destfile); // 總加密
int Decrypt(char *srcfile,char *destfile); // 總解密
/****************
* MD5函數 *
****************/
void Gen_md5_sum(FILE *fp);
/*************************
* 3DES函數 *
*************************/
void Gen_3des();
int Des_encrypt();
int Des_decrypt(int filelen);
/*************************
* RSA函數 *
*************************/
void Gen_rsa(char *filename1,char *filename2); // 生成用戶的私鑰(file1)和公鑰(file2),寫到文件里面
void Init_prikey(FILE *fp);
void Init_pubkey(FILE *fp);
};
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -