热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

aes默认填充算法mysql_一种基于AES加密算法的数据块填充方法及装置与流程

本发明涉及到的是AES加密算法的数据块填充领域,主要是基于以太网帧结构的“全帧加解密”等应用场景。(二)背景技术::高级加密标准(英语&#

本发明涉及到的是AES加密算法的数据块填充领域,主要是基于以太网帧结构的“全帧加解密”等应用场景。

(二)

背景技术:

:

高级加密标准(英语:Advanced Encryption Standard,缩写:AES)是对称密钥加密中最流行的算法之一,基本模式有AES128、AES192、AES256;以太网(英语:Ethernet)是目前应用最广泛的局域网通讯方式(帧长是64字节-1518字节),所以,基于以太网帧结构的AES加密算法有大量的应用场景,其中,“全帧加解密”是最简单的应用场景之一。AES作为块密码算法,需要把明文分割成固定大小的块,并以此对每块明文进行加解密。在加密侧,如果明文长度不是单位长度的整数倍,最后一个明文块的大小就会不足一块的长度,这时就要对最后一个明文块进行填充,在解密侧,按照算法解密之后的数据包能够按照约定的方式把填充数据去除,把明文数据恢复出来。

常见的AES加密算法的数据块填充方式有PKCS7,ANSIX923等,选取数据块填充算法PKCS7在AES128加解密应用中的功能做具体说明。AES128加密算法的块长度是“16”字节,PKCS7填充字符串由一个字节序列组成,每个字节填充该字节序列的长度。举例演示这种模式的工作原理,基于以太网帧结构的“全帧加解密”等应用场景,假定一个以太网帧的明文数据包长度是“69”字节,假定数据帧如图1所示,那么,在加密侧,数据包按顺序会分割成4个长度为“16”字节的数据块和1个长度为“5”字节的数据块,最后一个数据块长度小于AES128块长度,需要填充“11”字节,最后一个数据块的数据为“EE EE EE EE EE”,则填充之后的数据为“EE EE EE EE EE 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B”;在解密侧,会接收到5个长度为“16”字节的加密数据块,按照AES128加密算法规则进行解密,前4个数据块能够正确恢复出明文数据,最后1个数据块则恢复出数据“EE EE EE EE EE 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B”,然后按照PKCS7填充规则去掉填充数据,得到原始明文数据“EE EE EE EE EE”,上述的数据帧详细加解密过程如图2所示。显而易见,基于以太网帧结构的AES算法的加解密应用场景,PKCS7等数据块填充算法存在两个不足之处:一,明文数据块的填充操作增加了数据包的长度,降低了数据的传输效率,二,解密侧存在“误去除”填充数据的可能性。

因此,基于以太网帧结构的AES加密算法的“全帧加解密”等应用场景,发明一种新的数据块填充方法及相应的加解密装置有重要意义。

(三)

技术实现要素:

:

本发明在基于以太网帧结构的“全帧加解密”应用场景,首次提出了一种针对AES加密算法的“数据自填充”的数据块填充方法,并设计了以此方法作为数据块填充基础的加解密装置,解决了PKCS7等数据块填充算法存在的上述两个不足之处。

本发明所示的方法包括:

数据帧预处理;

数据帧基于AES算法的加解密;

数据填充;

数据帧重组;

本发明所示的装置分成加密部分和解密部分,具体包括:

数据帧预处理单元,完成异常数据帧的剔除及数据分割功能;

数据帧加解密单元,完成数据帧基于AES算法的加解密功能;

数据填充单元,完成数据块的填充功能;

数据帧重组单元,完成帧中数据的位置调整功能。

(四)附图说明:

图1假定数据帧示意图;

图2基于PKCS7数据块填充方式的加解密方法示意图;

图3基于“数据自填充”数据块填充方式的加解密方法示意图;

图4基于“数据自填充”数据块填充方式的加解密装置示意图。

(五)具体实施方式:

为了使本发明的方法、技术方案及优点更加明晰,以下结合附图和实例对本发明作进一步的详细说明。相关领域的技术人员应当理解,此处描述的具体实例仅仅用于理解本发明,并不用于限定本发明。

如图3A、图3B所示,在一个基于以太网帧结构的“全帧加解密”应用场景且采用AES128加密算法的实例中,提供了“数据自填充”作为数据块填充方法,具体内容包括:

步骤101,数据帧预处理,包括剔除异常数据帧和分割正常数据帧。由于有效以太帧长度最小字节数是64字节,所以长度小于64字节的数据帧被剔除;符合有效以太帧长度的数据帧按照16字节(AES128加密算法的块长度为16字节)为单位长度顺序进行数据分割,最后一个数据块的长度可能小于16字节,实例中数据帧分割成了5个数据块,最后一个数据块的长度为5字节。

步骤102,数据帧一次加密,分割的块长度等于AES128加密算法块长度的数据块按照AES128加密算法进行加密,实例中前4个数据块进行加密。

步骤103,数据自填充,最后一个数据长度小于加密算法“单位长度”的数据块需要填充,填充数据的“填充长度”是“单位长度”与最后一个数据块长度的差值,填充数据来源的起始位置是上一步骤处理完的数据帧的第一个字节,实例中第5个数据块需要填充,填充数据的来源是上一步骤处理完的第1个数据块的第1字节至第11字节。

步骤104,数据帧二次加密,填充后的数据块按照AES128加密算法进行加密,实例中填充后的第5个数据块进行加密。

步骤105,数据帧重组,首先从上一步骤处理完的数据帧的尾部截取“填充长度”的数据,然后依次替换上一步骤处理完的数据帧的头部数据,实例中截取第5个数据块第6字节至第16字节的数据依次替换第1个数据块第1字节至第11字节。

步骤201,与步骤101相同。

步骤202,与步骤103相同。

步骤203,数据帧一次解密,填充后数据帧的最后一个数据块按照AES128加密算法进行解密,实例中填充后的第5个数据块进行解密。

步骤204,与步骤105相同。

步骤205,数据帧二次解密,重组后的数据帧除去最后一个数据块的其他数据块按照AES128加密算法进行解密,实例中重组后的前4个数据块进行解密。

本发明中的装置如图4所示,其中包括:

数据帧预处理单元,完成异常数据帧的剔除及数据分割功能;

数据帧加解密单元,完成数据帧基于AES算法的一次加密、二次加密、一次解密和二次解密功能;

数据填充单元,完成数据块的填充功能;

数据帧重组单元,完成明文侧、密文侧帧中数据的位置调整功能。

如上所述,采用AES加密算法,且基于以太网帧结构的“全帧加解密”应用场景,本发明能够解决PKCS7等数据块填充算法存在的不足之处,保证传输的高效性和数据的准确性。



推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • yum安装_Redis —yum安装全过程
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Redis—yum安装全过程相关的知识,希望对你有一定的参考价值。访问https://redi ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
author-avatar
邵crnich
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有