常用的对称加密算法:
对称算法,指加密和解密使用相同密钥的加密算法,对称加密算法用来对敏感数据等信息进行加密。
1). DES算法
2). 3DES算法
3). AES算法
4). TDEA算法
5). Blowfish算法
6). RC5算法
7). IDEA算法
三种常用对称算法的对比
推荐使用
消息摘要算法分为三类:
MD(Message Digest):消息摘要
SHA(Secure Hash Algorithm):安全散列
MAC(Message Authentication Code):消息认证码
这三类算法的主要作用:验证数据的完整性
消息摘要算法是有关于数字签名的核心算法。
AES的加密流程,会涉及到AES加密的五个关键词,分别是:分组密码体制、Padding、密钥、初始向量IV和四种加密模式
AES五种加密模式(CBC、ECB、CTR、OCF、CFB)
“ECB模式是分组算法的一种基本模式,它不使用链接模式,也不使用初始化向量
分组密码加密方式主要有7种:ECB,CBC,CFB,OFB和CTR,这五种方式将在下面一一讲解。
在除ECB以外的所有加密方式中,都需要用到IV对加密结果进行随机化。
初始向量IV:初始向量IV的作用是使加密更加安全可靠,我们使用AES加密时需要主动提供初始向量,而且只需要提供一个初始向量就够了,后面每段数据的加密向量都是前面一段的密文。初始向量IV的长度规定为128位16个字节,初始向量的来源为随机生成。至于为什么初始向量能使加密更安全可靠,会在下面的加密模式中提到。
信息安全工程师笔记-加密模式ECB、CBC、CFB、OFB、CTR_cbc模式_IT1995的博客-优快云博客
密码2-加密模式和填充方式_kikajack的博客-优快云博客
作者:small_hao
链接:https://www.jianshu.com/p/19f7cd27bb90
5、在分组加密中,那种补位算法对数据长度有要求。
PKCS1Padding:PKCS#1(v1.5)中规定当RSA的密钥长度是1024b,如果使用PKCS1Padding填充,则原文数据最多117B。如果原文不满足长度要求,则在加密前需要进行填充。
PKCS5Padding:PKCS#5填充是将数据填充到8的倍数,填充后数据长度的计算公式是 定于元数据长度为x, 填充后的长度是 x + (8 - (x % 8)), 填充的数据是 8 - (x % 8),块大小固定为8字节
PKCS7Padding:假设数据长度需要填充n(n>0)个字节才对齐,那么填充n个字节,每个字节都是n;如果数据本身就已经对齐了,则填充一块长度为块大小的数据,每个字节都是块大小;PKCS5只填充到8字节,而PKCS7可以在1-255之间任意填充。
ZeroPadding:数据长度不对齐时使用0填充,否则不填充。
NoPadding:待补充