AES算法
来源:互联网 发布:淘宝店铺后花园 编辑:程序博客网 时间:2024/05/17 22:56
1,什么是AES算法呢?
简单的进行一下介绍,AES算法是典型的对称加密算法,它和其他我们常见的MD5,SHA的哈希摘要算法有很大的区别,主要体现在AES是可逆的,它主要的作用是来保证私密的信息不被泄漏,而摘要算法是不可逆的,是对信息一致性和完整性进行校验,下面举个栗子看它是如何工作的:
我是发送方 -------------------> IJSJAYEshaj+jdiuaks== ---------------------------> 接收方
(明文:帅哥你好啊)(加密过程) (密文) ( 解密过程) (明文:帅哥你好啊)
秘钥:123456
金牌解说上场了:1,发送方通过秘钥123456加密了明文(帅哥你好啊)变成了这么复杂的IJSJAYEAGSJDHJHSHshaj+jdiuaks== (密文)。2,接收方接收到了之后,又通过秘钥123456还原成为看的懂的明文(帅哥你好啊),这就是大体上的流程,关键的就是这个秘钥了,因为加密和解密都是通过秘钥来完成的,那什么是秘钥呢?
2,神秘的秘钥?
正是因为加密和解密用的是同一种的秘钥,所以才了AES算法的对称性,AES支持的3种长度类型:128,192,256。也就是大家常说的AES128,AES192,AES256,那几个有啥不同呢,为毛要搞不同长度的呢。解释一下,其实不同长度的类型表示了它所加密的轮数不同,分别是10,12,14轮,所以从安全性来讲的话AES256是最高的,从性能上来说是AES128最快,根据不同的需求来嘛。
3,加密的具体过程是啥?它是怎么利用密文加密的呢?
看官们,先说明啊,这个加密它不是一股脑就能干的成的,它先是将明文进行分块,每块占128bit,通过AES加密器分开加密,然后拼接成新的密文。
这个时候就有问题了,如果我的明文块为196bit,区分后剩下的68bit满足一个区块128bit要求怎么办?这边涉及到了一个重要的知识点,填充
4
4,填充?拿头填啊?
填坑呢,也是有技巧的,默认的填充方法是在明文块末补足相应数量的字符,而且你补的每个字节的值,是你缺少的字符数。举个栗子?
明文{1,2,3,a,b,c}缺少了5个字节,那么填补之后就是{1,2,3,a,b,c,5,5,5,5,5},来,少年,换一个填坑的姿势:
在明文块末尾补足相应数量的字节,最后一个字符值等于缺少的字符数,其他字符填充随机数。举个栗子?
明文{1,2,3,a,b,c}缺少了5个字节,那么填补之后就是{1,2,3,a,b,c,L,K,P,9,5},这是两种比较典型的填充方式。
- AES算法
- aes算法
- AES算法
- AES算法
- AES算法
- AES算法
- aes 算法
- AES算法
- AES算法
- AES算法
- AES算法
- AES算法
- 【算法】AES算法优化
- aes算法小结
- AES加解密算法
- java AES算法
- 【转】AES算法实现
- AES算法破解
- 神经网络各优化方法
- php发送邮件失败报错DT:SPM解决
- Java虚拟机(JVM)概述
- sql优化
- ListView加入分割线
- AES算法
- keras multi gpu 分布式训练
- 设计模式-代理模式
- OC 与 Swift混编 Swift的闭包传值到OC中
- SDSOC rivision 编译文件缺少opencv头文件
- Go语言-程序实体与关键字
- 利用PHPExcel实现数据的导入导出
- Java实现的RGB转YUV420方法
- 完全二叉树 链式 非递归 插入建树