一、简介
随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在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等)又称现代加密算法
非对称加密算法有两个密钥,这两个密钥完全不同但又完全匹配。只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。
优缺点:
密钥管理:密钥容易管理
安全性:高
加密速度:比较慢,适合 小数据量 加解密或数据签名
三、加密盐
加密盐也是比较常听到的一个概念,盐就是一个随机字符串用来和我们的加密串拼接后进行加密。加盐主要是为了提供加密字符串的安全性。假如有一个加盐后的加密串,黑客通过一定手段这个加密串,他拿到的明文,并不是我们加密前的字符串,而是加密前的字符串和盐组合的字符串,这样相对来说又增加了字符串的安全性。
小结
本文主要介绍了MD5、对称加密、非对称加密一些概念及使用场景,并且对算法的优缺点进行了描述。
文章持续更新中、希望对各位有所帮助、有问题可留言 大家共同学习.