浅谈加密算法 MD5、对称加密、非对称加密

一、简介

随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年, 美国国家标准局 公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等。随着对加密强度需求的不断提高,近期又出现了AES、ECC等。

数据加密的基本过程就是对原来为明文的 文件 或数据按某种 算法 进行处理,使其成为不可读的一段代码为“密文”,使其只能在输入相应的 密钥 之后才能显示出原容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为 解密 ,即将该 编码 信息转化为其原来数据的过程。

加密算法我们整体可以分为: 可逆加密 不可逆加密 ,可逆加密又可以分为: 对称加密 非对称加密

1、不可逆加密算法 (MD5、HMAC、SHA1、SHA-224、SHA-256、SHA-384、SHA-512等)

指不可以从密文中推算出明文的加密算法( 数据一旦加密,没有与之对应的秘钥进行解密 )
md5是一种不可逆的加密方式,虽然现在很多算法也可以将md5解密出来,但是md5还是具有很大程度上的不可逆。md5通常被用在用户登录信息的加密处理,服务器的数据库存的就是这个被加密后的字符串,用户在登录时服务器只要比较你客户端发送的md5字符串和它数据库字符串相同就可以正常登录了,而且现在APP运营商也很多都不敢保存用户的明文密码这是对用户信息的不负责。

MD5算法有以下特点:
1、压缩性:无论数据长度是多少,计算出来的MD5值长度相同
2、容易计算性:由原数据容易计算出MD5值
3、抗修改性:即便修改一个字节,计算出来的MD5值也会巨大差异
4、抗碰撞性:知道数据和MD5值,很小概率找到相同MD5值相同的原数据。

2、可逆加密算法

指可以通过特定秘钥从密文中推算出明文的加密算法
(1)对称加密 (DES、AES等)又称传统加密算法
对称加密算法是应用比较早的算法,在数据加密和解密的时用的都是同一个密钥。
密钥管理:比较难,不适合互联网,一般用于内部系统
安全性:中
加密速度:快好 几个数量级 (软件加解密速度至少快 100 倍,每秒可以加解密数 M 比特 数据),适合大数据量的加解密处理

(1)非对称加密 (RSA、SM2等)又称现代加密算法
非对称加密算法有两个密钥,这两个密钥完全不同但又完全匹配。只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。
密钥管理:密钥容易管理
安全性:高
加密速度:比较慢,适合 小数据量 加解密或数据签名

三、加密盐

加密盐也是比较常听到的一个概念,盐就是一个随机字符串用来和我们的加密串拼接后进行加密。加盐主要是为了提供加密字符串的安全性。假如有一个加盐后的加密串,黑客通过一定手段这个加密串,他拿到的明文,并不是我们加密前的字符串,而是加密前的字符串和盐组合的字符串,这样相对来说又增加了字符串的安全性。