摘要:在公开密码算法的前提下,数据的安全取决于密钥。因此,密钥的产生、销毁、交换(分发)是数据保密工作中的重要部分。CryptoAPI密钥产生和交换函数主要有生成密钥函数CryptGenKey、派生密钥函数CryptDeriveKey、销毁密钥函数CryptDestroyKey、复制密钥函数CryptDuplicateKey、导出密钥函数CryptExportKey、导入密钥函数CryptImportKey、获得密钥参数函数CryptGetKeyParam、设置密钥参数函数CryptSetKeyParam、产生随机函数CryptGenRandom、一、生成函数CryptGenKey:功能:产生一个随
阅读全文
摘要:微博作为新的社交、媒体平台,将会持久而深远的影响每个人的生活,而微博的应用将会延续facebook、苹果的应用模式,越来越规范、越来越火爆,是未来一个非常有前途、非常值得参与的应用平台。在下面我简单分析一下我在开发中积累和思考的一些经验。一、产品设计1、 界面界面尽量和微博保持一致,从而给用户延续性的感觉,美观而简洁。金山的微博投票(http://t.sina.com.cn/app/detail/5u4iAj)是典型成功案例。2、 功能如果想让更多的用户使用,保持简单实用的功能,不要做成大而全的平台,要让用户第一眼就可以理解你这个应用,不要让用户思考,用户没有耐心和你想象的那样容易理解你的应.
阅读全文
摘要:CryptoAPI的密码服务提供者函数主要有6个函数:1)连接或断开CSP函数CryptAcquireContext、CryptReleaseContext;2)枚举CSP函数CryptEnumProviders;3)获得或设置默认CSP函数CryptGetDefaultProvider、CryptSetProvider;4)获取或设置CSP参数函数CryptGetProvParam、CryptSetProvParam;一、连接CSP函数CryptAcquireContext:功能:连接CSP,获得指定CSP的密钥容器的句柄;原型:BOOL WINAPI CryptAcquireContext
阅读全文
摘要:CryptoAPI是微软提供的一组加密函数,其功能是为应用程序开发者提供在Win32环境下使用加密、验证等安全服务时的标准加密接口。CryptoAPI处于应用程序和密码服务提供者CSP之间。CryptoAPI的编程模型和Windows系统的图形设备接口GDI类似,其中的CSP相当于图形设备驱动程序,加密硬件等同于图形硬件。每个CSP都是一个独立的模块,可以执行所有的密码操作。CSP负责创建和销毁密钥并提供各种密码操作,每个CSP提供不同的CryptoAPI实现,并通过CSP名称来区别。CSP可以由软件实现,也可以由硬件实现,比如常见的USBKEY等。CSP是Windows安全应用的基础,在Wi
阅读全文
摘要:套接字Select模型使得Windows Sockets应用程序可以在同一时间内管理和控制多个套接字。该模型的核心是select()函数,在使用该函数时,还需要用到FD_SET、FD_ZERO、FD_ISSET和FD_CLR四个宏。套接字的select模型,能够使得Windows Sockets应用程序同时对多个套接字进行管理。调用select()函数检查当前各个套接字的当前状态。并且根据该函数的返回值,判断套接字的可读可写性。然后调用相应的Windows Sockets API,完成数据的发送和接收等。Select模型是Windows Sockets中最常见的I/O模型,利用select()
阅读全文
摘要:防御性编程是提高软件质量技术的有益辅助手段,它的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。防御性编程关键在于严格的输入检查、预期的错误处理方法。下面介绍使用断言来进行防御性编程。断言通常是一个例程(routine)或一个宏(macros),断言通常包含有两个参数:布尔表达式和消息。布尔表达式的反面是一个错误,C标准库提供了一个assert宏,它只带有一个参数,如:assert(1==0);//注意布尔表达式不用加引号使用assert宏,需要包含头文件cassert或assert.h,执行上述语句的结果是程序结束运行,并弹出对话框显示出错信息。我们可以自定
阅读全文
摘要:设备上下文DC是一个Windows数据结构,它包含了某个设备的绘制属性。通常,绘制调用都是借助于上下文对象,而这些设备上下文对象封装了用于画线、形状、文本等的Windows API。设备上下文是设备无关的,所以它既可以用于绘制屏幕,也可以用于绘制打印机甚至元文件。设备上下文在内存中创建,而内存经常受到扰动,所以它的地址是不固定的。因此,一个设备上下文句柄不是直接指向设备上下文对象,而是指向另外一个跟踪设备上下文地址的指针。设备上下文可分为4种:1)显示设备上下文主要用于显示设备上的绘制操作,当应用绘制客户区时,它需要调用BeginPaint、GetDC或GetDCEx函数获取显示设备上下文。绘
阅读全文