写在前面
这周了解了https是如何实现安全传输的,其中涉及到了s加密的技术。所以,博主去又去学习了常见的加密方式,故写下这篇博客
一、 对称加密
1.介绍
这个比较好理解,也就是说加密和解密使用的是同一把钥匙。
就好比自己家的钥匙一样,开门和锁门都用同一把钥匙。
给大家看个例子:
这里钥匙是string,当我点击加密后,会出现相应的密文。
下面清空明文
然后点击解密
可以看到明文又被解析回来。这个过程中,我们加密和解密都使用的同一个密钥String
.这就是对加密。
PS:
最早的对称加密应该是凯撒加密(学过C语言的同学一定知道,这是课后的一道练习题…),加密的规则是每个字母后移4位,同样,解密的时候可以推出来原来的内容…
我们可以把后移的个数看作是密钥,那么这种方式加密和解密使用的就是同一种规则的密钥,所以属于对称加密。
2.常见对称加密
1.DES
2.3DES
二、 非对称加密
1.引入
有了对称加密,为什么还需要非对称加密呢,肯定是有原因滴~,那就是对称加密很不安全,一旦有人获取了你的密钥,那么你发送的信息就毫无隐私所言,其次,这个密钥谁来保存呢,客户保存肯定不安全,服务端保存的话不好维护和管理,每一个用户通信都有一个密钥,这怎么保存啊…
为了解决对称加密不安全的缺点,引入了相对较为安全的非对称加密
2.介绍
什么是非对称加密?那就是加密和解密使用的不是一个钥匙呗~
Clinet和Server各自生两把钥匙,称为私钥和公钥。
公钥用来加密,私钥用来解密。
具体的实现:
在通信前,Clinet和 Server都获取了对方的公钥(当然其他人也可以获取~),然后Client用Server的公钥对要发送的数据进行加密,Sever收到后,用自己的私钥进行解密。
因为只有私钥可以解密且私钥保存在自己手里,所以保证了数据的安全。
让我们看个例子:
让我们先随机生成一对密钥
可以看到,已经生成了一对密钥,英文字母对应着公钥和私钥
接着,我们对于源文件source
进行加密
生成加密文件
可以看到,文件内容已经被加密,我们打开看到得时一堆乱码…
下面我们来解密:
得到解密文件source,打开内容
获取了明文
PS:
非对称加密也不是万能的,可以看到较于对称加密,非对称加密要复杂的多,所以效率也低。适合少量的数据得场景。
3.常见非对称加密
RSA
三、哈希加密
1.介绍
哈希加密是经过哈希函数得处理,生成一个固定长度值得编码。
需要注意的是,哈希加密是一种单向不可逆的加密方式,也就是只能加密,不能解密。所以,在有些网站中,密码忘记了只能修改,而不是找回…就是这个原因啦…
(随便找了个网站在线测试了下)
2.常见哈希加密
1.MD5
2.SHA
四、哈希加盐
啊,这个哈希加上盐,难道会更香,的确是这样~
1.引入
哈希加密也存在安全隐患,因为指定的密文,经过加密后得到的编码是固定的。比如说设置的密码,如果有人将常用的密码经过哈希加密,然后统计出来一张密码表,一个一个去匹配用户的密码,一些密码设置简单的用户,少不了成成为被攻击的对象。例如
2.介绍
为了解决这个困境,我们在使用哈希加密的时候可以随机加入一串字符串,和用户的明文拼接在一起,再生成密文。这样能大量的避免受第三方攻击的概率。这就是哈希加 盐
了~
例如:拼接一个随机字符串
好啦,本次分享就到这里了,下次再见~