C#.Net中的加密解密(AES、DES、RSA、MD5)、数字证书、HTTPS

一、信息安全的基本概念,以及为什么要使用加密?

1、信息安全的定义

保密性(Confidentiality) 
只有你自己和你允许的人能看到相关的信息。 

完整性(Integrity) 
信息收发过程中没有被破坏或篡改过。

可获得性(Availability) 
自己在需要的时候能够访问到信息或者保证对方能够收到你的信息。 

2、如何保证安全

认证(Authentication) 
认证就是证明你就是那个你所声称的那个人。举个例子,比如你去机场登机,你必须出示身份证才能证明你自己。在信息安全领域也一样,比如你想去Google查看张一山的邮件,然后google会问你要张一山的密码,因为只有张一山知道张一山帐户的密码,如果你能说出那个密码,那么你就是张一山,google就会把张一山的邮件返回给你。这个过程也被称为Identification。 

授权(Authorization) 
授权是指一个系统里面有很多用户,有些用户能做某些事情,有些用户不能做某些事情。比如Linux,很多用户可以同时通过认证而登录到Linux主机,但是只有root才能修改或删除系统文件,普通用户只能修改自己的home。 

3、为什么要使用加密

计算机世界是基于网络的,根据目前网络的结构和实现,请求数据包在世界各地的路由器之间游荡,任何人都可以获得你的发送的数据包,从而获得你发送的数据。比如当你访问一个HTTP网站时,你发出去一个请求,路由器会把请求广播给离目的地更近的路由器,可能是一个路由器,也可能是多个路由器。也就是说在这个请求到达目标服务器的路途上,不管是你家的路由器、你楼层的路由器、你小区的路由器、你当地电信的机房里,再一直到那个网站的服务器机房之间的所有网络设备上,都有你请求的数据通过。一般情况下,只有一份数据会被目的计算机接收到,其他的拷贝在网络上游荡一段时间以后就被抛弃了。但是只要中间有任何一个设备想要把数据记录下来,它可以没有任何阻力的做到,因为这些数据是完全可见、没有经过任何混淆和加密的。正是因为网络有这样的问题,人们就发明了很多加密通信的手段,来保证自己的通信的内容不会被泄露。比如SSL、数字证书、以及使用HTTPS协议都是为了保证数据的安全,这些方式都是基于加密的,对信息的加密是需要加密算法的,基本上要破解一个加密算法是非常非常困难的,至少目前流行的加密算法还是安全的。

二、单向散列算法(Hash)、对称加密

  • 单向散列算法MD5(Hash)

MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。虽然Hash不只是MD5,常见的还有SHA1,不过MD5最流行,所以一般大家说的Hash就是它了。Hash就是一个工具,它能把任意大小的文档变成一个 固定大小(MD5是32个字符)的字符串,如果小于32个字符,比如16个字符都是从32个字符中截取的。并且,这个过程是 不可逆的,也就是说,没有任何办法从那个字符串得到原来那个文档。

MD5属不属于加密算法:认为不属于的人是因为他们觉得不能从密文(散列值)反过来得到原文,即没有解密算法,所以这部分人认为MD5只能属于算法,不能称为加密算法;认为属于的人是因为他们觉得经过MD5处理后看不到原文,即已经将原文加密,所以认为MD5属于加密算法,看你们个人理解吧。

MD5的用途:1)、很常见的应用就是为了防止用户密码泄露,密码用MD5加密后保存到数据库,用户在登陆后将输入的密码进行MD5加密后再做比对。2)、SVN在检测文件是否在CheckOut后被修改过ÿ

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值