资源简介
rsa算法是一种非常安全的不对称密钥加密算法,是很多密码产品和安全软件的基础,在共享软件使用rsa算法的私钥产生注册码,能有效抵御破解。
rsa算法的安全性取决于密钥的长度,最少需要1024位,而编译器提供的数据范围,最大也只有64位,即使浮点数,也远远无法满足算法的要求,这就必须使用大数运算库。gmp是非常优秀的大数运算库,但是它并不是转为vc设计,想要在vc中使用,尤其是vs2010环境中使用,配置非常麻烦,这花了我一周的时间,才链接配置成功,在此记录下来配置方法,一方面是为了加强自己的记忆,另一方面是为了帮助有需要的朋友。
配置方法在vs2010,unicode编码下,debug和release模式下编译成功,详细配置方法在文件中,源代码包括rsa加密解密代码,你可以直接拷贝到自己的代码中。rsa公钥私钥的生成可参考rsa tool软件。
代码片段和文件信息
// BigIntTest.cpp : 定义应用程序的类行为。
//
#include “stdafx.h“
#include “BigIntTest.h“
#include “BigIntTestDlg.h“
//#include “BigIntegerLibrary.hh“
//#include “BigInteger.cc“
//#include “BigUnsigned.cc“
//#include “BigIntegerUtils.cc“
//#include “BigUnsignedInAbase.cc“
#include “gmp.h“
//#include “
//#include “
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CBigIntTestApp
BEGIN_MESSAGE_MAP(CBigIntTestApp CWinApp)
ON_COMMAND(ID_HELP &CWinApp::onhelp)
END_MESSAGE_MAP()
extern “C“ { FILE _iob[3] = {__iob_func()[0] __iob_func()[1] __iob_func()[2]}; }
// CBigIntTestApp 构造
CBigIntTestApp::CBigIntTestApp()
{
// 支持重新启动管理器
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}
// 唯一的一个 CBigIntTestApp 对象
CBigIntTestApp theApp;
// CBigIntTestApp 初始化
BOOL CBigIntTestApp::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
AfxEnableControlContainer();
// 创建 shell 管理器,以防对话框包含
// 任何 shell 树视图控件或 shell 列表视图控件。
CShellManager *pShellManager = new CShellManager;
// 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T(“应用程序向导生成的本地应用程序“));
CBigIntTestDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此放置处理何时用
// “确定”来关闭对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用
// “取消”来关闭对话框的代码
}
// 删除上面创建的 shell 管理器。
if (pShellManager != NULL)
{
delete pShellManager;
}
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
//BigInteger a;
//int b = a.toInt();
//BigInteger c(a);
//std::string s(“314“);
//BigInteger f = stringToBigInteger(s);
//BigInteger r=f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f
// *f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f
// *f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f
// *f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f
// *f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f
// *f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f
// *f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 106716 2012-07-20 22:07 BigIntTest\BigIntTest\BigIntTest.aps
文件 4409 2012-07-20 23:03 BigIntTest\BigIntTest\BigIntTest.cpp
文件 466 2012-07-19 12:07 BigIntTest\BigIntTest\BigIntTest.h
文件 11442 2012-07-20 22:07 BigIntTest\BigIntTest\BigIntTest.rc
文件 7271 2012-07-20 23:02 BigIntTest\BigIntTest\BigIntTest.vcxproj
文件 2214 2012-07-19 14:08 BigIntTest\BigIntTest\BigIntTest.vcxproj.filters
文件 143 2012-07-19 12:07 BigIntTest\BigIntTest\BigIntTest.vcxproj.user
文件 5589 2012-07-20 22:07 BigIntTest\BigIntTest\BigIntTestDlg.cpp
文件 762 2012-07-19 16:23 BigIntTest\BigIntTest\BigIntTestDlg.h
文件 3198 2012-07-19 12:07 BigIntTest\BigIntTest\ReadMe.txt
文件 67777 2009-08-31 02:31 BigIntTest\BigIntTest\res\BigIntTest.ico
文件 676 2012-07-19 12:07 BigIntTest\BigIntTest\res\BigIntTest.rc2
文件 2010 2012-07-19 16:23 BigIntTest\BigIntTest\resource.h
文件 143 2012-07-19 12:07 BigIntTest\BigIntTest\stdafx.cpp
文件 1721 2012-07-20 16:49 BigIntTest\BigIntTest\stdafx.h
文件 234 2012-07-19 12:07 BigIntTest\BigIntTest\targetver.h
文件 897 2012-07-19 12:07 BigIntTest\BigIntTest.sln
.....H. 2054 2012-07-20 23:08 BigIntTest\BigIntTest.sln.docstates.suo
..A..H. 28160 2012-07-20 23:08 BigIntTest\BigIntTest.suo
文件 205312 2012-07-20 23:03 BigIntTest\Debug\BigIntTest.exe
文件 953 2012-07-20 23:08 BigIntTest\gmp在vs2010环境配置.txt
文件 1800192 2012-07-20 23:02 BigIntTest\Release\BigIntTest.exe
目录 0 2012-07-20 20:45 BigIntTest\BigIntTest\res
目录 0 2012-07-20 23:09 BigIntTest\BigIntTest
目录 0 2012-07-20 23:10 BigIntTest\Debug
目录 0 2012-07-20 23:10 BigIntTest\Release
目录 0 2012-07-20 23:09 BigIntTest
----------- --------- ---------- ----- ----
2252339 27
............此处省略0个文件信息
- 上一篇:数据结构课程设计建立词索引表
- 下一篇:模糊C均值FCM聚类算法详解
相关资源
- HttpHelper 爬虫应用类库 苏飞万能框架
- VS插件--括号匹配,在VS2010下用了,效
- libghttp windows版本移植 源码+库封装+测
- TCP/UDP/ICMP/IGMP发包工具
- EBGMPCA等四种不同的人脸识别算法
- MSComm_VS2010
- vs2010自动补齐双引号
- IndentGuide VS2010 开始结束括号之间连线
- json vs2010
- win10缺失msvcr100d.dll文件 64位
- VS2010中文旗舰版(破解版).txt
- CtabSheet源代码
- 通讯录(vs2010+代码+数据库)
- CASyncSocket客户端服务器框架完整代码
- vs2010地址
- visual studio ultimate 2010
- VS2010+OSG_3.2+osgEarth_2.5+osgOcean_1.0.1+VPB
- VS10sp1-KB983509 vs2010补丁
- IndentGuide For VS2010 缩进对齐插件
- CCoolBar测试,使用vs2010编译
- 完美的vs2010主题设置,你一定会喜欢
- gmp库中文指导书
- GM-PHD滤波算法实现
- 中国象棋 和电脑对战 网络对战 保存
- VS2010求值MD5的代码
- AsmHighlighter for VS2008 VS2010 VS2012
- 组播pim DR 和IGMP 查询器谁负责转发数
- VS2010旗舰版.txt
- 在VS2010上用FluorineFX和Flex4开发项目(
- VS2010 SP1
评论
共有 条评论