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

您所在的位置:网站首页 数字证书对电子邮件进行加密吗 C#.Net中的加密解密(AES、DES、RSA、MD5)、数字证书、HTTPS

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

2024-07-14 17:11| 来源: 网络整理| 查看: 265

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

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后被修改过ÿ



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3