Windows加密API的层次

本文介绍了Windows平台下的两种主要应用程序类型:托管的.NET程序和本机的Win32程序,并详细阐述了它们如何利用系统提供的加密API进行数据加密。对于.NET程序,System.Security.Cryptography等名字空间提供了一系列加密类;而对于Win32程序,则通过CryptoAPI和CNG进行加密操作。此外,还提到了第三方库openssl在Windows平台上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows平台下的应用程序可以分为托管的.NET程序和本机的Win32(以及Win64)两大类。.NET有着类似于JAVA的虚拟机和二进制码托管运行环境,提供了在不同Windows平台上的代码可携性。由于.NET环境为应用软件开发提供了更便捷的平台和服务,目前多数面向业务的应用软件是.NET托管程序。windows系统为应用层提供的原生API是Win32 API,Win32应用程序能够调用系统的所有功能和服务,本机二进制代码的执行速度也数倍快于JAVA.NET等虚拟机托管代码,系统工具软件和速度敏感的代码一般会是Win32应用程序。

Windows应用程序对加密API的调用关系如下图所示:

image

.NET Framework类库的System.Security.Cryptography、System.Security.Cryptography.PKCS、System.Security.Cryptography.X509名字空间包含有实现了各种加密功能的类。适用于Win32应用程序的加密编程接口是CryptoAPI和CNG。.NET 加密类的一部分仅是win32加密API的托管包装,另一些则是纯的托管实现。.NET 加密相关的类也适用于Windows Phone APP的开发。

即使是使用.NET类库加密,应用开发者仍然需要了解一些Win32层面的加密技术原理。因为Win32加密API不仅仅是系统的原生API,它还呈现了系统的加密体系和密钥保护管理机制。

openssl是一种与操作系统平台无关的加密库及接口,其支持平台包括了Windows,故Win32应用程序也能使用openssl编程接口加密。这种情况下,软件一般会携带openssl的dll文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值