阅读 3108

拓展篇(一):“了解”日常使用的加密方式(基本介绍,加密特点,应用场景)

1.前言

本文主要分享一下笔者过去曾使用过,或者了解过的加密方式。

"了解"而非”熟悉“,更适合表达文章的难度级别,底层的原理笔者也是一脸懵逼,更别提加密用到了什么算法。

本文只能浅谈一下不同的加密方式中的,基本介绍,加密特点,应用场景。

如有理解错误,欢迎指出。


 实例将会在后续githug给出,相信网上demo很多。如找不到,可留言我提供。
 
复制代码

2.加密是啥

首先加密就是为了不暴露我们原本的信息,将明文加密为密文,并通过通信路径发送。 中途窃听者不会阅读或理解课文。 在接收端接收时,密文被解密为明文。

加密更加保证了程序的安全性。

3.加密方式

在汇总加密方法之前,先普及一下加密方法吧。

对称加密,即是用单个密钥加密和解密数据。其优点就是速度快。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。

他的优点就是算法公开、计算量小、加密速度快、加密效率高。

但有个缺陷就是,发件人和收件人都必须使用相同的密钥。 你必须向接收者共享密钥。

非对称加密,就是针对对称加密缺陷的一种改进,非对称加密算法是一种密钥的保密方法。

他需要两个密钥,公钥与私钥。如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。这就是非对称加密。

他比"对称加密"更加安全,但是效率值暂时还不上对称加密。

4.加密方法

MD5

首先介绍一下MD5。

MD5并不属于对称加密,也不属于非对称加密,它甚至算不上加密算法。原则上他是不可逆的。只允许你加密,不允许你解密。

那么你可能会有疑问,居然不能解密,用来干嘛?他的应用场景还是挺广泛的。

场景

我们的系统,需要暗号"芝麻开门"才有权限操作。这时候你不能直接填入"芝麻开门",或者告诉别人暗号是"芝麻开门"。这样别人就知道了你的暗号了。

那么怎么办呢?这时候可以用我们的"芝麻开门"进行md5加密。加密后可能是sdadgjsdgjsdagjsdggdjsag(笔者乱敲的)的东西。这时候门卫只需要对比你一下,你们加密后的值是否一样就可以给你权限。门户自己也根本不知道"暗号"是什么。

特点

MD5加密有哪些特点:

  • 压缩性:任意长度的数据,算出的MD5值长度都是固定的。

  • 容易计算:从原数据计算出MD5值很容易。

  • 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

  • 强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

其他

原则上他是不可逆的。但是很多时候,不跟着原则走。网上有关MD5解密的网站数不胜数,我们还是不能以他为唯一标准,可以尽量多加密几次。

DES

DES是一种对称加密算法,但是近些年使用越来越少,因为DES使用56位密钥,在现在随时可被还原。

基本给AES替代,但是本文还是简单的提及一下。

AES具有比DES更好的安全性、效率、灵活性,所以对称加密优先采用AES。

AES

又称"高级加密标准",后续取代了DES。

我们可以利用AES工具先生成一个密匙(可到:tool.chacuo.net/cryptaes生成 )。然后

Aes效率还是比较高,可以说是最普及的对称加密。

场景

程序之间,传递不适合明文传输的报文

特点
  • 加密速度快
  • 适合大量数据
  • 处理数据后可复原

RSA

RSA是非对称加密算法代表作。

RSA的安全性依赖于大数分解,小于1024位的N已经被证明是不安全的,而且由于RSA算法进行的都是大数计算,使得RSA最快的情况也比DES慢上倍,这是RSA最大的缺陷,因此通常只能用于加密少量数据或者加密密钥,但RSA仍然不失为一种高强度的算法。 你可以这么去理解RSA的原理:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

值得一提的时候,RSA有长度限制,使用时如果数据有可能过长,要提前做好分段加密

特点

优点:

  • 安全,秘钥不暴露,公钥随便给都没事

缺点:

  • 密钥尺寸大,,一般用来加密少量数据,比如DES的密钥。
  • 加解密速度慢
  • 实现分段加密
  • 加密后的数据大
场景

发送重要数据给客户时,防止中间有人拦截修改数据,这时候我们可以使用rsa。