文件名称:Crypto编程-lte系统级模拟仿真器说明书
文件大小:2.67MB
文件格式:PDF
更新时间:2024-06-23 12:02:48
Delphi 网络 高级编程
13.5 Crypto编程 Microsoft 的Windows平台如果安装了 Internet Explorer 3.0 或更高的版本,就会提供加 密功能,称为 CryptoAPI。Crypto使用模块化设计,提供了Windows平台上的一套加密标准, 用户不仅可以使用 CryptoAPI 自带的加密函数,还可以使用或开发符合 CryptoAPI 规范的其 他密码算法函数。 Microsoft RSA Base Provider是 CryptoAPI自带的密码函数集,提供“RSA,DSS”公共密 钥算法,“RC2”、“RC4,DES”等对称密钥算法,以及 MD2、MD5 和 SHA 等哈希算法。表 10-1介绍了 Provider提供的算法。 表 13-1 Crypto预定义的算法 类型 交换密钥 签名算法 加密算法 Hash算法 PROV_RSA_FULL RSA RSA RC2, RC4 MD5, SHA PROV_RSA_SIG n/a RSA n/a MD5, SHA PROV_DSS n/a DSS n/a SHA PROV_FORTEZZA KEA DSS Skipjack SHA PROV_MS_EXCHANGE RSA RSA CAST MD5 PROV_SSL RSA RSA varies varies 限于篇幅这里简单地介绍 CryptoAPI主要函数的功能,函数细节可查阅 CryptoAPI SKD。 Delphi 的 CryptoAPI 声明单元可以在光盘目录 ch12\API\CryptoAPI2\下找到,也可以访问 http://www.delphi-jedi.org站点下载。 CryptoAPI函数被分为如下 4类。 (1) CSP(密码服务提供函数) CryptAcquireContext:取得指定的 CSP内的用户密钥容器的句柄。 CryptSetProvider:设置指定的 CSP类型为用户默认的 CSP。 CryptGetProvParam:读取 CSP的属性。 CryptSetProvParam:设置 CSP的属性。 CryptReleaseContext:释放 CryptAcquireContext函数生成的句柄。 在应用程序中使用 CryptoAPI 必须在初始化时使用 CryptAcquireContext,程序结束 时使用 CryptReleseContext。 (2) 密钥函数 CryptGenRandom:生成随机数据。 CryptDeriveKey:利用用户密码生成密钥。 CryptGetUserKey:取得用户密钥的句柄。 CryptGetKeyParam:取得密钥的属性。 CryptSetKeyParam:设置密钥的属性。 CryptImportKey:将一个密钥值转换为 CSP使用的密钥。 CryptExportKey:将 CSP的密钥转换为一个密钥值,该值可以安全地保存在文件中。