資源簡介
RSA加解密(c語言實現).zip

代碼片段和文件信息
/******************************************************************************/
// 工程:RSA
// 功能:RSA加、解密文件
//??作者:jlcss|ExpNIS
/******************************************************************************/
#include?
#include?
#include?
#include?“rsa.h“
#define?DECRYPT_FILE?“RSA加密密文.txt“
#define?ENCRYPT_FILE?“RSA解密明文.txt“
//!?約束文件最大2M
#define?MAX_FILE 1024*1024*2
/******************************************************************************/
// 名稱:usage
// 功能:幫助信息
//??參數:應用程序名稱
// 返回:提示信息
/******************************************************************************/
void?Usage(?const?char?*appname?)
{
printf(?“\n\tusage:rsa?-k?素數P?素數Q\n“?);
printf(?“\tusage:?rsa?-e?明文文件?公鑰e?公鑰n\n“?);
printf(?“\tusage:?rsa?-d?密文文件?私鑰d?私鑰n\n“?);
}
/******************************************************************************/
// 名稱:IsNumber
// 功能:判斷數字字符數組
//??參數:strNumber:字符數組
// 返回:數字字組數組返回true,否則返回false;
/******************************************************************************/
bool?IsNumber(?const?char?*strNumber?)
{
unsigned?int?i;
if(?!strNumber?)
return?false;
for?(?i?=?0?;?i? {
if?(?strNumber[i]?‘0‘?||?strNumber[i]?>?‘9‘?)
return?false;
}
return?true;
}
/******************************************************************************/
// 名稱:IsPrimeNumber
// 功能:判斷素數
//??參數:num:?輸入整數
// 返回:素數返回true,否則返回false;
/******************************************************************************/
bool?IsPrimeNumber(?unsigned?int?num?)
{
unsigned?int?i;
if(?num?<=?1?)
return?false;
unsigned?int?sqr?=?(unsigned?int)sqrt((double)num);
for(?i?=?2;?i?<=?sqr;?i++?)
{
if(?num?%?i?==?0?)
return?false;
}
return?true;
}
/******************************************************************************/
// 名稱:FileIn
// 功能:讀取磁盤文件到內存
//??參數:strFile:文件名稱;inBuff:指向文件內容緩沖區
// 返回:實際讀取內容大小(字節)
/******************************************************************************/
int?FileIn(?const?char?*strFile?unsigned?char?*&inBuff?)
{
int?iFileLen=0?iBuffLen=0;
//!?打開密文文件
CFile?file(?strFile?CFile::modeRead?);
iFileLen?=?(?int?)file.GetLength();
if(?iFileLen>MAX_FILE?)
{
printf(?“文件長度不能大于?%dM!\n“?MAX_FILE/(1024*1024)?);
goto?out;
}
if(?iFileLen?%?8?!=?0?)
iBuffLen?=?(?iFileLen/8+1?)?*?8;
else
iBuffLen?=?iFileLen;
inBuff?=?new?unsigned?char[iBuffLen];
if(?!inBuff?)
goto?out;
ZeroMemory(?inBuff?iBuffLen?);
file.Read(?inBuff?iFileLen?);
file.Close();
out:
return?iBuffLen;
}
/******************************************************************************/
// 名稱:FileOut
// 功能:加/解密結果輸出到當前目錄磁盤文件中
//??參數:strOut指向輸出字符緩沖區,輸出大小len,strFile為輸出文件
// 返回:無
/******************************************************************************/
void?FileOut(?const?void?*strOut?int?len?const?char?*strFile?)
{
//!?輸出到文件
CFile?outfile(?strFile??
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-12-06?23:57??RSA\
?????文件????????5334??2009-12-10?18:53??RSA\main.cpp
?????文件????????4469??2009-12-10?18:53??RSA\RSA.cpp
?????文件?????????582??2009-12-10?18:52??RSA\RSA.h
- 上一篇:C++串口讀寫類
- 下一篇:ELGamal加解密(c語言實現).zip
評論
共有 條評論