摘要:
权限的概念相信你已经不陌生了,那么如何设置一个文件的访问权限呢?编程可不可以实现动态的控制文件权限信息呢?答案是肯定的,.NET可以做到这些。本节会给您一个完整的演示。
自由访问控制列表(Discretionary Access Control List,DACL)(有时缩写为ACL)是一种 Microsoft Windows NT 和更高版本用于保护资源(例如文件和文件夹)的机制。DACL包含多个访问控制项(Access Control Entry,ACE)。访问控制项将一个主体(通常是一个用户账户或用户账户组)与一个控制资源的使用的规则相关联。通过DACL 和ACE,可以基于与用户账户关联的权限允许或拒绝资源的权限。例如,可以创建一个ACE,并将其应用于某个文件的DACL,以阻止除管理员以外的任何人读取该文件。
系统访问控制列表(System Access Control List,S 阅读全文
摘要:
非对称加密在理论上似乎比对称加密简单,但是在实际应用中的细节却复杂得多,为了能由浅入深地理解.NET中的非对称加密,本小节分步理解其中的细节。
非对称密钥
当使用一个非对称加密类创建一个该类的实例的时候,构造函数会生成一个“公钥/私钥”对。我们可以选择是否保存该密钥和保存的方式。
先从代码清单6-8的内容来熟悉下非对称密钥的密钥结构。
代码清单6-8 输出非对称密钥 阅读全文
摘要:
与对称加密算法相同,所有的非对称算法的相关类也存在于System.Security.Cryptography命名空间中。在该命名空间中,.NET框架提供了RSA、DSA、ECC、Differ-Hellman共四种非对称加密算法的实现。本节介绍其中几种主要的相关类和接口。具体应用的相关内容将在下一节进行介绍。 阅读全文
摘要:
基本流程很简单,那么公钥加密,私钥解密的算法原理到底是什么呢?本节简要阐述RSA算法、DSA算法、ECC算法、Diffie-Hellman算法的基本原理,其中涉及很多数论、离散数学以及解析几何方面的数学知识,感兴趣的读者可以借此加强相关理论基础。 阅读全文
摘要:
现在我们已经知道对称加密的一个最大的问题是如何安全地传输密钥,并且在对称加密的体系下找不到好的解决方案。1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。
与对称加密算法不同,非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法。 阅读全文
摘要:
在使用.NET框架提供的加密算法实现类来执行加密任务时,需要准备加密密钥和初始化向量(Initialization Vector,IV)。基于对称加密的特点,在加密数据之后一定要保存好密钥和初始化向量,因为解密要用到它们。但是对于不同的数据加密,要使用不同的密钥和初始化向量,理论上每次新的加密过程都应该使用全新的密钥和初始化向量。
通常需要将加密密钥和初始化向量传递给另一个人,这时候需要使用非对称加密算法来加密密钥和初始化向量,然后在网络上传输。本节主要演示如何使用加密实践类,更多的应用内容会在本书的第四部分介绍。
那么如何创建加密密钥和初始化向量呢?有两种基本方法,一种是使用加密算法实现类的构造函数,另一种是使用GenerateIV()和GenerateKey()方法生成密钥和初始化向量。 阅读全文
摘要:
本节介绍System.Security.Cryptography名称空间中的对称加密类。 阅读全文
摘要:
经典的对称加密算法是DES算法,后来又衍生出3DES、TripleDES等增强型的DES算法。此外,.NET还提供了RC2、Rijndael等对称加密算法。下面分别详细介绍。 阅读全文
摘要:
对称加密是计算机加密领域最古老也是最经典的加密标准。虽然对称加密被认为不再是安全的加密方式,但是直到现在,我们还看不到它被淘汰的迹象。在很多非网络化的加密环境中,对称加密足以满足人们的需要。
对称加密采用单密钥加密方式,不论是加密还是解密都是用同一个密钥,即“一把钥匙开一把锁”。对称加密的好处在于操作简单、管理方便、速度快。它的缺点在于密钥在网络传输中容易被窃听,每个密钥只能应用一次,对密钥管理造成了困难。对称加密的实现形式和加密算法的公开性使它依赖于密钥的安全性,而不是算法的安全性。 阅读全文
摘要:
为了能更好地理解.NET基于角色的安全性,从一个最简单的实例导入角色的应用。首先创建一个简单的控制台程序,如代码清单1-1所示。
代码清单1-1 未添加角色验证的程序 阅读全文