解密.NET框架中的加密与解密
2012-09-10俞志兵
俞志兵
南京市天印高级中学 南京 211151
作者:俞志兵,本科,中学一级教师,长期从事高中信息技术教学工作,任信息技术教研组组长,擅长网站开发。
1.NET中加密算法的形式及其概况
总的来说,加密有两种形式:1)对称加密,加密和解密时使用的是同一个密钥;2)非对称加密,加密和解密时将使用不同的密钥。通常是用公钥作为加密密钥,任何人都可以用它来加密信息。私钥才是用来解密密钥的,它只能用来对使用其对应的公钥加密的数据进行解密。对称加密相对而言速度更快,但由于加密者和解密者都知道这个唯一的密钥,因此安全性更差一些。非对称加密则通过密钥的方法来解决这个问题,由于私钥永远不会暴露,所以第三方更加难以破解其加密的信息。由于密钥的方法需要更长的处理时间,因此通常的方法是使用非对称密钥加密机制在因特网上实现对对称密钥的加密,这样就使这个用于加密的密钥更安全,不会暴露给第三方。
在.NET的命名空间System.Security.Cryptography中提供了几种算法。可用的非对称算法包括DSA(Digital Signature Algorithm,数字签名算法)和RSA(Rivest-Shamir-Adleman算法,它由3个发明者的名字组成:Ronald Rivest、Adi Shamir和Leonard Adleman)两种。其中DSA只能够用来对数据进行“签名”,因此通常用来做验证,而RSA更加通用。DSA现在是美国政府使用的数字验证的标准。
.NET框架中可以找到的对称加密算法包括DES(Data Encryption Standard,数字加密标准)、Triple DES(3DES)、RC2(Ron’s Code或Rivest’s Cipher,都是源于Ronald Rivest)和Rijndael(源于其发明者John Daemem、Vincent Rijman的名字)。DES成为标准已经有一段时间,尽管它也不断发生变化。3DES和RC2都是DES的变种。3DES是通过对数据进行3次独立的DES加密,扣除奇偶校验位,其总的密钥长度也达到168位。……
