CryptoAPI简介(三)
来源:互联网 发布:alias linux 参数 编辑:程序博客网 时间:2024/05/16 06:19
Windows系统中的安全组件CryptoAPICOM
Windows操作系统为我们提供了先进的加密体系模型CryptoAPI,同时该模型也提供了丰富的函数供第三方开发使用。但使用CryptoAPI完成一些通常的操作(如:加密、签名)仍然是相当复杂的。幸好微软同时提供了CryptoAPICOM组件,封装了上述的复杂操作,使你只需要调用一两个函数,就可以完成指定的功能。CryptoAPICOM是一个COM模型的组件,可以在Windows环境下各种语言中使用。而且,CryptoAPICOM中的大多数接口都是“脚本安全”的,这意味着你可以在浏览器网页脚本中安全地使用这些接口所提供的功能。
目前,CryptoAPICOM共有两个版本:1.0版和 2.0版。其中,后者在前者的基础上,提供了一些额外的功能。
CryptoAPICOMv1.0提供如下功能:
1、 产生和验证pkcs#7格式的数字签名;
2、 使用证书加密/解密数据;
3、 使用口令加密/解密数据;
CryptoAPICOMv2.0额外提供如下功能:
1、 产生和验证代码签名;
2、 支持文件形式的证书;
3、 快速证书搜索;
4、 产生任意数据的哈希值;
5、 支持aes算法(需要windows .net server 2003 或 windows xp支持);6、 支持高级证书属性,例如:政策、模板。
CryptoAPICOM是重分发组件,也就是说它没有被包含在操作系统的中,需要单独安装注册该组件(可以从ms那里免费下载);CryptoAPICOMv1.0 要求win95、winnt 4.0或更高版本,CryptoAPICOMv2.0 要求win98 、winnt 4.0 + sp4 或更高版本。
下面对几种常用的加密操作和证书管理功能进行说明。
哈稀运算
使用对象:hasheddata 脚本安全 注意:需要CryptoAPICOMv2.0 支持。
口令加解密
使用对象:encrypteddata 脚本安全 注意:该加密结果不符合pkcs#7标准,也就是说用CryptoAPICOM加密的数据也只能用其解密。
数字信封
使用对象:envelopeddata 脚本安全 处理结果符合pkcs#7标准。
数字签名
使用对象:signeddata 脚本安全 处理结果符合pkcs#7标准。
证书管理
使用对象:certificate、store等 脚本安全 你可以利用capicom提供的一系列证书管理组件完成证书的验证、查询、存储、显示等操作。
算法搜索策略
CryptoAPICOM首先检查系统缺省csp是否支持用户指定的算法及密钥长度,如果失败,则搜索微软提供的csp,并判断其是否支持上面指定的算法和密钥长度。搜索顺序如下:
1、 系统缺省csp;
2、 microsoft enhanced cryptographic provider;
3、 microsoft strong cryptographic provider;
4、 microsoft base cryptographic provider;
由上可见,在CryptoAPICOM中,我们可以通过自定义csp并提供自己的加密算法,供上层应用程序使用。
- CryptoAPI简介(三)
- CryptoAPI简介(三)
- CryptoAPI简介(一)
- CryptoAPI简介(二)
- CryptoAPI简介(四)
- CryptoAPI简介(一)
- CryptoAPI简介(二)
- CryptoAPI简介(四)
- CryptoAPI简介(二)
- CryptoAPI简介
- CryptoAPI
- CSP开发基础--CryptoAPI函数简介
- CSP开发基础--CryptoAPI函数简介
- CSP开发基础--CryptoAPI函数简介
- CSP开发基础--CryptoAPI函数简介
- 编写ATL工程实现ActiveX控件调用cryptoAPI接口(三)------------AES对称加密与解密
- 编写ATL工程实现ActiveX控件调用cryptoAPI接口(三)------------AES对称加密与解密
- 转载:公钥、私钥、USBKey、CSP、数字证书和CryptoAPI的简介
- linux stl中list和windows stl list之size
- 深入浅出设计模式笔记之十一:责任链模式
- hdu 1142 A Walk Through the Forest
- 最好的HTML 5编码教程和参考手册分享
- JavaZone 2012 年度大片《Java打劫》
- CryptoAPI简介(三)
- Oracle通用分页存储过程和AspNetPage结合
- 求二进制中1 的个数
- 类变量、成员变量、实例变量、局部变量、静态变量、全局变量 的解释。
- 深入浅出设计模式笔记之十二:命令模式
- Linux下串口编程
- DOS / Linux Shell 下运行Java时设置ClassPath的问题
- CryptoAPI简介(四)
- eclipse注释汉字特别小的问题