# 介绍
数字签名、信息加密在前后端开发是经常用的的技术,主要的应用场景比如:用户登录、交易、信息通信、认证等。不同的应用场景可能会选择不同的签名加密算法,下面给大家介绍几种比较常用的签名加密算法。
# AES
高级加密标准(AES,Advanced Encryption Standard)是最常见的对称加密算法比如:微信小程序加密传输就是用这个加密算法的。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图:
# RSA
RSA加密算法是一种典型的非对称加密算法,是应用最广泛的非对称加密算法。
非对称加密算法是通过两个密钥(公钥、私钥)来实现对数据的加密和解密。公钥用于加密、私钥用于解密。
非对称解密算法流程图
RSA加密算法流程和加密过程图
# CRC
循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。 它是利用除法及余数的原理来作错误侦测的。
# MD5
MD5出现最多的是在文件签名中,我们下载文件的时候,经常会看到文件页面上附带一个扩展名为.MD5 的文本或者一行字符,这行字符就是就是把整个文件当作原数据通过 MD5计算后的值。我们下载文件后,可以用检查文件MD5信息的软件对下载到的文件在进行一次计算。两次结果对比就可以确保下载到文件的准确性。
还有常用的是网站比较敏感信息的加密,比如用户密码、支付签名等。
# SHA1算法
SHA1是和 MD5 一样流行的 消息摘要算法,然而 SHA1 比 MD5 的 安全性更强。对于长度小于 2 ^ 64 位的消息,SHA1会产生一个 160` 位的消息摘要。基于 MD5、SHA1 的信息摘要特性以及 不可逆 (一般而言),可以被应用在检查 文件完整性以及数字签名 等场景。
# DES算法
DES加密算法是一种 分组密码,以 64位为 分组对数据加密,它的密钥长度 是 56位,加密解密用同一算法。
DES 加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方 相同密钥 的人才能解读由 DES加密算法加密的密文数据。因此,破译 DES加密算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜索的话,其运算次数为 2 ^ 56 次。
# 3DES算法
是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高。