目录堆是什么 堆的操作与构建堆结构体定义初始化插入元素 删除元素 取堆顶数据 堆元素个数 判断堆是否为空 堆的销毁 堆的构建 TopK问题堆排序 堆是什么 堆是一种完全二叉树,采用顺序结构存储。 堆的操作与构建堆有两种,大堆和小堆。大堆:根大于左右子树小堆:根小于左右子树&nb
DES加密流程图如下: 输入明文为64bit数据,经过IP初始置换分为左右两组32bit数据L0和R0,最后经过16轮加密运算,L16与R16(注意最后一轮没有进行左右互换)经过逆初始置换IP-1得到密文输出。 其中IP和IP-1是公开固定的 下面分别解释 IP–初始置换,上半部分4个字节32bit数据组成L0,下半部分组成R0, 表中数字表示初始明文数据的下标,即第一个bit是原明文的第58个b
转载
2024-05-07 23:06:55
220阅读
最近一直比较忙,或者说比较懒,都没有来写博客,呵呵!这几天研究的一点小成果拿出来晒一下。 本来想写关于AES的加密的,但是在使用过程屡屡出现问题,比如说对图片文件或者其他格式的非文本文件,甚至是Word都无法进行加密解密,我坚信这是我个人能力的问题,但是时间原因,改为使用DES加密、解密。 其实DES加密的原理比较简单: 1. 首先需要创建一个访问算法的对象。 2. 然后将需要
转载
2023-08-17 16:55:21
91阅读
文章目录1、什么是DES2、DES的基本概念3、DES的加密流程4、DES算法步骤详解4.1 初始置换(Initial Permutation,IP置换)4.2 加密轮次4.3 F轮函数4.3.1 拓展R到48位4.3.2 子密钥K的生成4.3.3 当前轮次的子密钥与拓展的48位R进行异或运算4.3.4 S盒替换(Substitution Box substitution)4.3.5 P盒替换4.
AES简介全称:AES(Advanced Encryption Standard)高级加密标准是一种最常见的对称加密算法,微信小程序加密传输就是用的这个加密算法的AES具体的加密流程介绍如上图:明文p是指没有经过加密的数据,密钥k是用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方和发送方协商产生的,但不可以在网络上传输,否则将导致密钥的泄露。我们一般是通过非对称加密算法
转载
2023-10-03 11:52:57
88阅读
DES(Data Encryption Standard,数据加密标准)作为一种基本结构为Feistel结构的加密算法,其加密核心在于F函数。而Feistel结构决定了其加密解密流程是相同的,无论是硬件实现还是软件实现都只需要一种结构,不需要分别实现。今天我们重点来分析关于加密流程中用到的15张表的使用(初始置换表、 密钥置换表、子密钥移位表、子密钥压缩置换表、明文扩展置换表、S盒的8张压缩置换表
转载
2024-05-03 16:10:30
818阅读
众多的加密手段大致可以分为单项加密和双向加密。单项加密指通过对数据进行摘要计算生成密文,密文不可逆推还原,比如有Base64、MD5、SHA等;双向加密则相反,指可以把密文逆推还原成明文,其中双向加密又分为对称加密和非对称加密。对称加密是指数据使用者必须拥有同样的密钥才可以进行加密解密,就像大家共同约定了一组暗号一样,对称加密的手段有DES、3DES、AE
最近项目在写工具类的时候用的加密解密算法是3DES,就总结一下DES-3DES-AES吧,按顺序来,先介绍下DES吧;DES:是对称算法的以一种(加密、解密过程是可逆的,并且使用的密钥是一致的),关于加密算法的介绍,对称、非对称具体哪些,什么场景,大家可以翻看我之前的博客;这里讲到加密解密算法,就简单说一下当下分组密码设计的两个原则:混淆(confusion)和扩散(diffusion),其目的是
转载
2024-04-24 14:52:23
30阅读
明文总是有一些不随机的冗余信息的,特别是公文、报告等格式文件。二战中,德军使用恩尼格玛ENIGMA转子密码机加密他们的电报,建立了一个在当时十分高效的加密系统。这一系统在战争前期给盟军的情报工作带来很大的麻烦。德军的一些定期报告有着固定的格式和行文模式,这些明文中的固定成分是盟军知道的。图灵发明的密钥分析机,利用了这些固定成分加速猜测过程和检验猜测结果。德国密码专家并非不知道这一点,ENIGMA密
前后端请求,内容涉及用户信息时一般会要求对数据进行加密;对于支付系统的接口,为了保证参数不被篡改(如订单金额、支付单号等),需要对下单参数进行签名;本篇介绍RSA相关的知识以及应用场景,包括:对称加密和非对称加密、RSA原理简介、加密和签名的区别以及RSA加密算法的代码示例;1. 对称加密和非对称加密1. 对称加密假如:一个人A想把信息m发给B 他不能直接把m给B,不然会被窃听到,所以
转载
2024-01-25 19:14:45
2阅读
0 AES简介 美国国家标准技术研究所在2001年发布了高级加密标准(AES)。AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准。 根据使用的密码长度,AES最常见的有3种方案,用以适应不同的场景要求,分别是AES-128、AES-192和AES-256。本文主要对AES-128进行介绍,另外两种的思路基本一样,只是轮数会适当增加。1 算法流程 AES加解密的流程图如下:&n
转载
2023-07-07 10:42:07
1181阅读
DES算法•DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。DES算法入口参数•DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。算法步骤:•DES算法把64位的明文输入块变为64位
转载
2024-04-01 21:36:57
187阅读
1.首先,要明确几个简单的概念key:8个字节共64位的工作密钥,必须是8字节。但是实际用到的是56字节,剩下的8字节用于校验data:8个字节共64位的需要被加密或被解密的数据2. 流程图 下图为16轮重复运算的具体过程3.算法的流程简单分析1)IP置换–处理dataIP置换目的是将输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位。置换规则如下表所示:表格中的数字为
转载
2024-04-12 13:40:33
286阅读
【1】什么是堆?堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:堆中某个结点的值总是不大于(大顶堆)或不小于其父结点的值(小顶堆);堆总是一棵完全二叉树。将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。堆是非线性数据结构,相当于一维数组,有两个直接后继。堆的定义如下:n个元素的序
凯撒算法 概述凯撒密码是罗马扩张时期朱利斯• 凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。例如如果向右移动 2 位,则 字母 A 将变为 C,字母 B 将变为 D,…,字母 X 变成 Z,字母 Y 则变为 A,字母 Z 变为 B。 因此,假如有个明文字符串“Hello”用这种方法加密的话,将变为密文: “Jgnnq” 。而如果
堆和非堆内存按照官方的说法:“Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。JVM主要管理两种类型的内存:堆和非堆。
Heap memory Code Cache
Eden Space
Survivor Space
Tenured Ge
DES 加密算法以及实现 文章目录DES 加密算法以及实现1. 中文版介绍2. 英文版介绍1.1 Subkeys generation1.2 Data encryption3. 算法实践3.1 读取置换矩阵3.2 置换3.3 子密钥生成以及循环左移3.4 加密和解密4. 示例5. 代码推荐文章 1. 中文版介绍2. 英文版介绍自己根据英文材料简单概括的写了一下,若有出错的地方,还请各位斧正DES,
转载
2024-05-05 19:22:25
74阅读
目录DES对称加密算法详解DES简介Unicode码DES算法整体流程DES算法整体流程函数f的大致流程DES加密实现细节IP置换(初始置换)实现细节函数f实现细节子秘钥K压缩置换1压缩置换2扩展置换ES盒代替P盒置换末置换(也称初始置换的逆置换/终止置换)Python实现初始置换表与终止置换表:8个S盒:P盒压缩置换表扩展置换表参考文章DES对称加密算法详解DES简介DES全称为Data Enc
转载
2023-08-08 13:22:19
524阅读
同RSA(Ron Rivest,Adi Shamir,Len Adleman三位天才的名字)一样,ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)也属于公开密钥算法。目前,国内详细介绍ECC的公开文献并不多(反正我没有找到)。有一些简介,也是泛泛而谈,看完后依然理解不了ECC的实质(可能我理解力太差)。前些天我从国外网站找到些材料,看完后对ECC似乎懵懂了。于
转载
2024-06-05 10:51:04
57阅读
看许式伟的文章时,他提到“怎样成为一个优秀的软件架构师”时,说了这么一句话:“一靠匠心,二靠悟心”(这里他的确写的是悟心,不是悟性,这里的悟心,也许是指“领悟心”的意思吧)。我不知道怎么算匠心,也不知道什么算悟心,但是作为一个做技术的人,也许通过不断的积累和提高自己,慢慢会理解这话的内涵吧。
加密算法
一直一来我对加密算法都有抵触的心理,原因很简单,想要理解加密算
原创
2022-04-07 11:56:21
881阅读