.Net 加密解密组件工具类 System.Security.Cryptography.Algorith

本文介绍了.NET Framework中的System.Security.Cryptography命名空间,该命名空间封装了加密、签名相关的类,包括对称加密算法、非对称加密算法和散列算法。详细讨论了DES、RSA、DSA、SHA等加密标准,并阐述了它们在数字签名、数据验证等场景的应用。
摘要由CSDN通过智能技术生成

        在.NET Framework出现之前,如果我们需要进行加密的话,我们只有各种较底层的技术可以选择,如Microsoft Crypto API、Crypto++、Openssl等等,其用法相当复杂。而在 .NET Framework中,这些复杂内容(原来独立的API和SDK)已经被封装合并在一个.NET框架类中,这对于程序开发人员非常有利。它将CryptoAPI改编进.NET的System.Security.Cryptography命名空间,使其包含这些与加密、签名相关的类。利用这些类,我们就可以很方便地使用各种广泛使用的算法,包括RSA, DSA, Rijndael,** SHA和其他Hash算法**等等。,使密码服务摆脱了SDK平台的神秘性,变成了简单的.NET名字空间的使用。

System.Security.Cryptography.Algorith

加密算法主要分为:对称加密算法、非对称加密算法和散列算法(哈希算法)

1.对称密钥密码算法:

对称密钥密码算法所用的加密密钥和解密密钥通常是相同的,即使不同也可以很容易地由其中的任意一个推导出另一个。在此算法中,对密钥的保密性在这类应用中的重中之重!加、解密双方所用的密钥都要保守秘密。由于计算速度快,对称加密算法被广泛应用于大量数据,如文件的加密过程中。
对称加密要注意的地方主要就是块加密模式(这个也不是对称独有的,在非对称中也存在模式概念)!
使用分组密码算法数字签名常用的加密标准有:DES,Tripl-DES,RC2,RC4,CAST等。

2.非对称加密算法
非对称密钥密码算法又称公共钥匙加密算法,意指加解密的密钥是不一样的,使用到两个密钥:公开密钥和私有密钥,数据加密一个,数据解密一个!即如果用公开密钥对数据进行加密,只有用对应的私有密钥才能进行解密;如果用私有密钥对数据进行加密,则只有用对应的公开密钥才能解密。加密方式的安全性要比对称的安全些,但安全不是绝对的!这种算法最主要运用场景就是数字签名!像RSA/DSA!
使用公钥密码算法进行数字签名通用的加密标准有: RSA,DSA等。

3.加密哈希算法(散列算法)
哈希算法也称作散列算法或报文摘要(digital digest)。哈希算法将任意长度数据转化为固定长度字符序列。简单点就是一种变换,使变换后的数据在一定小概率情况下代表变换前数据的“标签”,这个标签就是散列,变换就是散列算法,往往这些算法是公开的、不可逆的!因为算法公开的,为了防止大家谁都可以对源数据进行散列,所以出现增加一个KEY的变形散列算法(HMAC算法)。哈希结果是始终维一的。任意二个序列的哈希结果是不同的。哈希结果亦称为数字指纹(Finger Print),它有固定的长度,且相同的明文摘要必定一致。这样这串摘要使可成为验证明文是否是"真身"的"指纹"了。
散列主要用在对数据有效性的验证方面。例如,BT就是用SHA1验证收到数据块是否有效的,Email服务器的登录就有一中名为HMACMD5的验证模式!

特点:

  • 算法公开,散列的算法是公开的,也就是说谁都可以通过算法进行输入散列化。
  • 信息指纹,对相同的输入信息进行散列,得到的结果是一致的(这也是信息指纹的由来)。
  • 不可逆 (将一个已经被散列的输出无法通过计算还原原本的输入)。tag:但是现在也有网上通过大数据收集已有的散列,进行库存储,可以通过查库得到原本的输入。
  • 定长,对不同长度的输入信息进行散列,得到的输出永远是定长的(128个二进制位,32个十六进制字符)。

作用:

  • 对于用户敏感信息的保密.(比如用户密码)   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值