- 3
- 0
- 约3.07万字
- 约 26页
- 2017-01-06 发布于贵州
- 举报
CSP学习笔记CSP学习笔记
Crypto?API?学习笔记一微软公司在NT4.0以上版本中提供了一套完整的Crypto?API的函数,支持密钥交换,数据加密解密,数字签名,给程序员带来了很大方便,用户在对软件进行保护的时候可以直接利用Crypto?API来完成这些工作,比如计算注册码,检查程序的完整性等。??我们在用这些的API进行加密解密的时候,只需要知道如何去应用它们,而不必知道它们的底层实现。如果想知道它们更为详尽的资料,可以查找相关的资料。??对Crypto?API只是业余型的感兴趣,想通过写学习笔记,一是让自己记的更牢固些,二是想把自己的学的跟大家探讨一下。写的不好,大家多多原谅。我主要通过MSDN来学习,例子也是完全取自MSDN。??首先,是Crypto?API运行的环境。首先需要Crypt32.lib,将它加到project-setting-link下面,当然你也可以在程序中用#pragma?comment?(lib,?crypt32.lib)加入。??在程序开头,你要加入两个头文件?windows.h?和?Wincrypt.h,和一个#define?MY_ENCODING_TYPE??(PKCS_7_ASN_ENCODING?|?X509_ASN_ENCODING)??在正式应用API进行一系列的加密解密的时候,需要有一些准备工作,下面是介绍一些在正式开始时所需要了解和做的工作。生成密钥和密钥容器??我们知道,在进行加密解密的时候,我们需要一个密钥进行加密,和一个密钥进行解密,加密密钥和解密密钥可能相同,也可能不同。于是在我们进行加密解密的开始时,我们首先需要有密钥。下面这个程序,完成了三个任务,并且介绍了一些函数的用法。任务一:获取一个指定的密钥容器,如果这个容器不存在,创建一个。任务二:如果容器中不存在一个签名密钥对,创建一个任务三:如果容器中不存在一个交换密钥对,创建一个??//-------------------------------------------------------------------下面这段程序使用到了这几个函数CryptAcquireContext?CryptDestroyKey?CryptGenKey?CryptGetUserKey?//?Copyright?(c)?Microsoft?Corporation.??All?rights?reserved.#include?stdio.h#include?tchar.h#include?windows.h#include?Wincrypt.h//-------------------------------------------------------------------void?MyHandleError(LPTSTR?psz){????_ftprintf(stderr,?TEXT(An?error?occurred?in?the?program.?\n));????_ftprintf(stderr,?TEXT(%s\n),?psz);????_ftprintf(stderr,?TEXT(Error?number?%x.\n),?GetLastError());????_ftprintf(stderr,?TEXT(Program?terminating.?\n));????exit(1);}?//?End?of?MyHandleError.上面这个函数是一个异常处理函数,当出现错误的时候,出现提示,并推出程序。以后的程序中都有这个函数,以后就会将这个函数的实现省去。现在这个函数的实现在后面。void?main(void)?{?????????HCRYPTPROV?hCryptProv;???//定义一个CSP模块的句柄。“CSP模块,请查看《加密解密二》222页,那里有简单的说明,这里就不说了。?????????????????LPCTSTR?pszContainerName?=?TEXT(My?Sample?Key?Container);//用一个TEXT宏定义一个容器的名字,????????if(CryptAcquireContext(????????//这个函数是获取有某个容器的CSP模块的指针,成功返回TRUE。????????hCryptProv,????????????//指向一个CSP模块句柄指针,里面用指定的容器????????pszContainerName,???????//指定容器的名称?????NULL,????????????????//这个参数这里用的是缺省值,指得是缺省得CSP模块,你也可以传入一个LPCTSTR类型的字符
您可能关注的文档
- class-map.doc
- cis策划案例.doc
- Clear可丽尔.doc
- cld数电任务书.doc
- ci设计与文化传承.doc
- CMA实验室资质认定.doc
- Close test.doc
- CMP技术的未来.doc
- cms功能体系.doc
- CME集团介绍.docx
- 人教版九年级英语Unit 4曾害怕课件3a-4c.pdf
- 雅思口语考题回顾:朗阁海外考试研究中心2019年10月10日Part 1考题总结.pdf
- 2026届高三地理一轮复习课件小专题河流袭夺.pptx
- 【名师原创】复习专题5 三角函数 作者:合肥市第八中学 蒲荣飞名师工作室.docx
- 高中数学一轮复习 微专题2 抽象函数.docx
- 高中数学——复习专题4 空间向量与立体几何.docx
- 高中数学一轮复习 微专题3 空间几何体中的截面、轨迹问题.docx
- 高中数学一轮复习 微专题4 空间几何体的最值、范围问题.docx
- 导流洞施工质量通病防治手册.docx
- 江苏省徐州市第一中学、徐市第三中学等五校2026届高三上学期12月月考历史试题含答案.docx
最近下载
- 中国汉字听写大会模拟试题11套.docx VIP
- 基层治理中网格化管理的问题与改进.docx VIP
- 26春苏教版三年级下册数学第1课时 加法数量关系(1) 课件.pptx VIP
- 【02-新课预习】第04讲 钠及其化合物(学生版)-2025年新高一化学暑假衔接讲练 (人教版).pdf
- 起重装卸机械操作工高级工培训大纲.docx VIP
- 员工退休管理办法.docx VIP
- 核反应堆设计软件:RELAP5二次开发_(5).RELAP5输入文件结构与编写.docx VIP
- 科力D2008称重显示器说明书(完整版).pdf
- 基于abaqus的某微型车渐变刚度钢板弹簧的有限元分析.pdf VIP
- 2025年福建省专升本英语考试真题及参考答案.docx VIP
原创力文档

文档评论(0)