摘要:使用Crypto++的MD5算法对字符串进行哈希,先在VS2010中新建Win32 Console Application,取工程名为:Crypto-MD5。在工程主目录中新建文件夹include,将Crpyto++的头文件放进去,在同一目录新建lib文件夹,在lib文件夹中再建两个文件夹Debug和Release,之后将Crypto++的调试版和发布版cryptlib.lib分别放到前面两个文件夹中。打开工程Crypto-MD5.cpp文件,修改添加代码如下:==========================Crypto-MD5.cpp====================#includ
阅读全文
摘要:eccrypto.h提供了基于椭圆曲线加密操作的一系列模板类,将这些类设计成模板主要的原因是有两种类型椭圆曲线。因此,类EC2N(ec2n.h)代表的是基于GF(2n)的椭圆曲线算法;而类ECP(ecp.h)代表的是基于GF(p)的椭圆曲线算法。椭圆曲线的参数保存在模板类ECParameters中,参数能够以多种方式初始化;但是其中一个更实用的用法是使用函数LoadRecommendedParameters(),它提供了建议参数之一,定义在oids.h中。下面看几个实例代码:1)生成一个EC2N密钥对,并保存之:// ECPrivateKey is used directly only bec
阅读全文
摘要:Base64Encoder是一个接收任何数据输入并将之转换成base64编码的过滤器,并可选地在每行满72个字符时进行换行。在现行版本的Crypto++中,类Base64Encoder对象在销毁时并没有执行对缓冲区中的数据进行编码。因此,除了在一个包含Base64Encoder过滤器的过滤器对象链中,当Base64Encoder之前没有其他过滤器时,函数MessageEnd()会被自动调用外,我们必须在数据输入结束时显式地调用函数MessageEnd()。(注意:MessageEnd()的nPropagation参数能被使用的情况是:当和Base64Encoder关联的其他过滤器对象不需要me
阅读全文
摘要:Crypto++用户手册のrsa.h:与RSA加解密相关的类都是在rsa.h头文件中定义的。其中类RSAFunction和类InvertibleRSAFunction是分别封装了RSA公钥和私钥信息的基础类,这两个类支持直接通过函数ApplyFunction (公钥操作)和函数CalculateInverse(私钥操作)进行RSA的计算。我们只有在完全清楚自己的操作的情况下,同时使用正确补位(padding),才能直接使用这两个函数。一般情况下,我们更多使用的是rsa.h中通过typedef定义的类型:typedef RSAES<OAEP<SHA> >::Decrypt
阅读全文
摘要:1)std::stringstream的定义如下:typedef basic_stringstream<char> stringstream;它是basic_stringstream模板在char类型上的一个特化,使用该类型需要包含头文件<sstream>.std::stringstream经常被用来将字符串和各种基本数据类型之间进行转换,功能类似于C标准库中的itoa和atoi函数,但std::stringstream能做的事情更多,我们就从下面这个实例代码来进行学习吧:#include <iostream>#include <sstream>
阅读全文
摘要:在ACM竞赛中,在将编制好的程序提交到在线评测系统(Online Judge)之前,必须在本机上调试通过。在本机调试的方法比较讲究,一般是从一个文本文件,如“asce.txt”中读入数据,再输出数据到屏幕上即可。下面来看一下zoj1001问题A+B problem:===============================================Calculate a + b InputThe input will consist of a series of pairs of integers a and b,separated by a space, one pair of i
阅读全文
摘要:SetWindowLong函数用来改变指定窗口的属性,函数同时在窗口的额外内存中设置32位的偏移量值:LONG WINAPI SetWindowLong( __in HWND hWnd, //指定窗口的句柄,或者间接地,窗口所属的类 __in int nIndex, //指定要设置的属性值的偏移地址 __in LONG dwNewLong //指定设置的新值);参数nIndex的取值如下:GWL_EXSTYLE //设置一个新的扩展窗口风格GWL_HINSTANCE //设置一个新的应用程序实例句柄GWL_ID //为窗口设置一个新的标识GWL_STYLE //设置一个新的窗口风格GWL_US
阅读全文
摘要:1)设计一个窗口过程:下面的实例代码展现了经典的窗口过程的结构。窗口过程使用switch语句处理传入的消息参数uMsg,LRESULT CALLBACK MainWndProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam) // second message parameter{ switch (uMsg) { case WM_CREATE: // Initialize the window...
阅读全文
摘要:获取和设置对话框控件标题或内容的相关方法介绍:0)先来看一个获取窗口中指定控件或子窗口指针的函数CWnd::GetDlgItem:CWnd* GetDlgItem( int nID //控件或子窗口的ID) const;void GetDlgItem( int nID, //控件或子窗口的ID HWND* phWnd //指向子窗口的指针) const;“返回值”是指向控件或子窗口的指针,如果指定nID控件不存在,返回值是NULL;要注意的是:返回的指针可能是临时的,因此不能存下来以待后面使用。我们通常会将返回的指针转换为nID指向控件的类型。例如:// uses GetDlgItem to
阅读全文
摘要:MFC中有两种类型的对话框:模态对话框和非模态对话框。模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务。非模态对话框是指当其显示时,允许转而执行程序中其他任务,而不用关闭这个对话框。模态对话框的创建:创建模态对话框需要调用CDialog类的成员函数:DoModal,该函数的功能是创建并显示一个模态对话框,其返回值将作为CDialog类的另一个成员函数:EndDialog的参数,后者的功能是关闭模态对话框。一般显示模态对话框的实现代码如下:void CASCEView::OnDialog(){ CASCEDlg dlg; dlg.DoModal();
阅读全文
摘要:1)输出当前源文件的文件名以及源文件的当前行号?解答:ANSI C标准预定义宏:1)__LINE__:在源文件中插入当前源代码行号;2)__FILE__:在源文件中插入当前源文件名;3)__DATE__:在源文件中插入当前的编译日期;4)__TIME__:在源文件中插入当前编译时间;5)__STDC__:当要求程序严格遵循ANSI C标准时该标识符被赋值为1,表明是标准C程序。实现代码如下:#include <iostream>int main(){ std::cout<<"the file name is : "<<__FILE__&l
阅读全文
摘要:1)函数GetDlgItem用来获取指定对话框中控件的句柄:HWND WINAPI GetDlgItem( __in_opt HWND hDlg, //包含控件的对话框的句柄 __in int nIDDlgItem //要获取的控件的ID);函数调用成功返回指定控件的句柄,失败时返回NULL,表示无效的对话框或不存在的控件。2)函数GetDlgItemText用来获取对话框中控件的标题(title)或文本(text)信息的:UINT WINAPI GetDlgItemText( __in HWND hDlg, //包含控件的对话框句柄 __in int nIDDlgItem, //要获取信息的
阅读全文
摘要:全排列问题:设R={r1, r2, …, r3}是要进行排列的n个元素,Ri = R – {ri}。集合X中元素的全排列记为Perm(X)。(ri)Perm(X)表示在全排列Perm(X)的每一个排列前加上前缀ri,得到的排列。因此,R的全排列可以归纳定义如下:1)当n=1时,Perm(R) = (r),其中r是集合R中唯一的元素;2)当n>1时,Perm(R)由:(r1)Perm(R1),(r2)Perm(R2),…,(rn)Perm(Rn)构成。我们据此设计递归算法如下:#include <iostream>/*** 功能描述:交换两个数的值* 参数:* a---数一*
阅读全文
摘要:OP停刊一个月,估计一个月后剧情就会是两年后了,很多人估计都会变得很强了!嗯,未来一个月对我来说也是很关键的,我也得变得很强才行哪!最近在学习上有点乱呢,看来是该好好规划下学习的顺序了…反正项目是不能落下的,除此之外就是准备好找工作了,近期先将两本书过一遍吧,顺便将重点记下:《Wndows核心编程》和《计算机算法设计与分析》!坚持下去,不能朝三暮四啊!
阅读全文
摘要:题目:设有n个正整数,将它们连接成一排,组成一个最小的多位整数?例如:n=2时,2个整数32,321连接成的最小整数是:32132; n=4时,4个整数55,31,312,33连接成的最小整数为:312313355。解答:由于题目涉及到整数的连接,如果直接进行整数的连接,可能会超出整数的表示范围,因此我们将之转换为字符串之间的连接更简单些,同时自定义字符串的比较规则:如果字符串A+B > B+A,那么A>B。同时可以证明A+B>=B+A,B+C>=C+B,则A+C>=C+A。因此,解题思路为:1)先将输入的n个整数转换成字符串;2)按照自定义的字符串比较规则将n个
阅读全文
摘要:Firefox有个自动翻页的插件AutoPager,使用起来非常的方便。腾讯微博也有相同的功能,当鼠标滑动到底部时会自动展开下一页,如下图所示:展开后如下所示:这个功能虽然比较小,但是实现起来是非常有意思的事情,我们可以选择多种方法达到目的。下面我介绍一种简单的实现方式。1、首先移动滚动条会触发window.onscroll事件。2、我们可以根据滚动条滚动时屏幕位置和页面底部的距离来判断是否需要翻页。需要用到三个函数:1、pageHeight:页面总高度。2、windowHeight:屏幕高度。3、ScollY:页面滚动的高度。pageHeight减去windowHeight减去ScollY即
阅读全文
摘要:译自:http://surgeworksmobile.com/iphone/starting-with-titanium-and-android 译言版本:http://article.yeeyan.org/view/153993/122458原文作者:Radu Cojocaru 转载请标明出处:蒋宇捷(hfahe) http://blog.csdn.net/hfahe Appcelerator Titanium是3个跨平台的手机架构之一(另外两个是Rhodes和PhoneGap)。像PhoneGap一样,它通过Javascript拓展了手机设备的性能,它允许你使用HTML、CSS和Javas
阅读全文