资源简介
简单的c/c++实现的基于文件的RSA加解密
代码片段和文件信息
/******************************************************************************/
// 工程:RSA
// 功能:RSA加、解密文件
// 作者:Chyukn
/******************************************************************************/
#include
#include
using namespace std;
#include
#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 < strlen(strNumber) ; 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 string &strData )
{
int iFileLen=0;
//! 打开文件
ifstream file(strFile);
if (! file.is_open())
{
cout << “无法打开该文件,请检查文件名是否正确,是否隐匿了拓展名 \n“;
return 0;
}
file.seekg(0 ios::end);
iFileLen = file.tellg();
file.seekg(0 ios::beg);
if( iFileLen>MAX_FILE )
{
printf( “文件长度不能大于 %dM!\n“ MAX_FILE/(1024*1024) );
return 0;
}
char *inBuff = new char[iFileLen+1];
file.read( inBuff iFileLen );
inBuff[iFileLen]=‘\0‘;
strData=inBuff;
delete []inBuff;
file.close();
return iFileLen;
}
/******************************************************************************/
// 名称:FileOut
// 功能:加/解密结果输出到当前目录磁盘文件中
// 参数:strOut指向输出字符缓冲区,输出大小len,strFile为输出文件
// 返回:无
/******************************************************************************/
void FileOut( const char *strOut
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 49664 2014-01-01 22:45 RSA.opt
文件 240 2014-01-01 22:44 RSA.plg
文件 10 2014-01-02 11:26 RSA.txt
文件 0 2014-01-02 11:26 RSA加密密文.txt
文件 0 2014-01-02 11:26 RSA解密明文.txt
文件 10030 2014-01-01 22:43 main.cpp
文件 4967 2014-01-01 22:38 RSA.cpp
文件 4119 2009-06-07 00:00 RSA.dsp
文件 529 2009-06-07 00:00 RSA.dsw
文件 752 2014-01-01 20:37 RSA.h
文件 50176 2014-01-01 22:45 RSA.ncb
----------- --------- ---------- ----- ----
120487 11
- 上一篇:c/c++实现的基于文件的DES加解密
- 下一篇:逆波兰表达式 c语言实现
相关资源
- c/c++实现的基于文件的DES加解密
- RSA算法1024位C语言实现
- 用vc++6.0做 的RSA的加密与解密程序
- 程序流程图生成器支持C/C++
- 基于VS2008和IVF11的C/C++和Fortran混合编程
- c/c++采用编码转换表实现gbk与unicode互
- C/C++快件管理系统
- 最优装载问题 计算机算法 c/c++语言
- 基于C语言实现的贪吃蛇
- C++ 聊天软件源代码(内容加密RSA加密
- RSA加解密源码VC++
- c/c++控制台游戏
- 基于C++的实时数据库的设计与实现
- linux C/C++实现的通过url访问网页提取网
- 双目视觉标定棋盘格模板程序
- C语言 个人通讯录管理系统
- VC++ 使用RSA算法防止非法注册机破解软
- g711音频编解码(C/C++)实现
- ini文件读取源代码
- 秘钥管理系统 c语言实现的RSA
- C/C++实现FAT文件系统的读写
- C++制作加密解密系统
- 常用加密算法AES、RSA、DES、MD5、TEA、
- 椭圆曲线密码ECC算法实现源码C++
- 图像处理 逆滤波处理 C/C++语言实现
- c/c++实现银行家算法模拟
- 操作系统的模拟实现 C++编写
- RSA加解密算法 C语言实现
- C/C++课程设计-学生成绩管理系统
- 基于c++的RSA加密解密程序及源码
评论
共有 条评论