软件工程思想文档(软件危机)
在60年代计算机发展初期,程序设计是少数聪明人干的事。他们的智力与技能超群,编写的程序既能控制弱智的计算机,又能让别人看不懂、不会用。那个时期编程就跟捏泥巴一样随心所欲,于是他们很过分地把程序的集合称为软件,以便自己开心或伤心时再把程序捏个面目全非。人们就在这种美滋滋的感觉下热情地编程,结果产生了一堆问题:程序质量低下,错误频出,进度延误,费用剧增……。这些问题导致了“软件危机”。
在60年代计算机发展初期,程序设计是少数聪明人干的事。他们的智力与技能超群,编写的程序既能控制弱智的计算机,又能让别人看不懂、不会用。那个时期编程就跟捏泥巴一样随心所欲,于是他们很过分地把程序的集合称为软件,以便自己开心或伤心时再把程序捏个面目全非。人们就在这种美滋滋的感觉下热情地编程,结果产生了一堆问题:程序质量低下,错误频出,进度延误,费用剧增……。这些问题导致了“软件危机”。
• 基本加密函数:用于选择CSP、建立CSP连接、产生密钥、交换及传输密钥等操作。 • 证书编/解码函数:用于数据加密、解密、哈希等操作。这类函数支持数据的加密/解密操作;计算哈希、创建和校验数字签名操作;实现证书、证书撤销列表、证书请求和证书扩展等编码和解码操作。 • 证书库管理函数:用于数字证书及证书库管理等操作。这组函数用于管理证书、证书撤销列表和证书信任列表的使用、存储、获取等。 • 简单消息函数:用于消息处理,比如消息编码/解码、消息加/解密、数字签名及签名验证等操作。它是把多个底层消息函数包装在一起以完成某个特定任务,方便用户的使用。
这里介绍一些CryptoAPI的知识,也是让自己对CryptoAPI做一个系统的总结(针对证书操作这块)。 微软加密服务体系 微软加密服务体系CryptoAPI的结构如下图所示,微软加密服务体系包含三层结构和两个接口,分别为应用程序层、操作系统层(OS)、加密服务提供者层(Cryptographic Service Provider,CSP),CryptoAPI接口和加密服务提供者接口(Cryptographic Service Provider Interface,CSPF),
下面的几个专题是Hashing,Signing Data,Creating and Receiving Enveloped Data Messages以及Encrypting and Decrypting.这些专题等需要用到的时候再具体看吧。主要专注于证书的操作。不过cryptui.dll又要求是在windows 2003 Server版本才可以,哎,只好等晚上再去买盘了。
CryptoAPI体系结构 CryptoAPI体系架构共由五大主要部分组成:基本加密函数、证书编/解码函数、证书库管理函数、简单消息函数、底层消息函数。体系结构如下图所系: • 基本加密函数:用于选择CSP、建立CSP连接、产生密钥、交换及传输密钥等操作。 • 证书编/解码函数:用于数据加密、解密、哈希等操作。这类函数支持数据的加密/解密操作;计算哈希、创建和校验数字签名操作;实现证书、证书撤销列表、证书请求和证书扩展等编码和解码操作。
这里介绍一些CryptoAPI的知识,也是让自己对CryptoAPI做一个系统的总结(针对证书操作这块)。 (1) 微软加密服务体系 微软加密服务体系CryptoAPI的结构如下图所示,微软加密服务体系包含三层结构和两个接口,分别为应用程序层、操作系统层(OS)、加密服务提供者层(Cryptographic Service Provider,CSP),CryptoAPI接口和加密服务提供者接口(Cryptographic Service Provider Interface,CSPF),