目录堆是什么 堆操作与构建堆结构体定义初始化插入元素 删除元素 取堆顶数据 堆元素个数 判断堆是否为空 堆销毁 堆构建 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是用来加密明文密码,在对称加密算法中,加密与解密密钥是相同。密钥为接收方和发送方协商产生,但不可以在网络上传输,否则将导致密钥泄露。我们一般是通过非对称加密算法
DES(Data Encryption Standard,数据加密标准)作为一种基本结构为Feistel结构加密算法,其加密核心在于F函数。而Feistel结构决定了其加密解密流程是相同,无论是硬件实现还是软件实现都只需要一种结构,不需要分别实现。今天我们重点来分析关于加密流程中用到15张表使用(初始置换表、 密钥置换表、子密钥移位表、子密钥压缩置换表、明文扩展置换表、S盒8张压缩置换表
众多加密手段大致可以分为单项加密和双向加密。单项加密指通过对数据进行摘要计算生成密文,密文不可逆推还原,比如有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,不然会被窃听到,所以
0 AES简介  美国国家标准技术研究所在2001年发布了高级加密标准(AES)。AES是一个对称分组密码算法,旨在取代DES成为广泛使用标准。  根据使用密码长度,AES最常见有3种方案,用以适应不同场景要求,分别是AES-128、AES-192和AES-256。本文主要对AES-128进行介绍,另外两种思路基本一样,只是轮数会适当增加。1 算法流程  AES加解密流程图如下:&n
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,
目录DES对称加密算法详解DES简介Unicode码DES算法整体流程DES算法整体流程函数f大致流程DES加密实现细节IP置换(初始置换)实现细节函数f实现细节子秘钥K压缩置换1压缩置换2扩展置换ES盒代替P盒置换末置换(也称初始置换逆置换/终止置换)Python实现初始置换表与终止置换表:8个S盒:P盒压缩置换表扩展置换表参考文章DES对称加密算法详解DES简介DES全称为Data Enc
同RSA(Ron Rivest,Adi Shamir,Len Adleman三位天才名字)一样,ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)也属于公开密钥算法。目前,国内详细介绍ECC公开文献并不多(反正我没有找到)。有一些简介,也是泛泛而谈,看完后依然理解不了ECC实质(可能我理解力太差)。前些天我从国外网站找到些材料,看完后对ECC似乎懵懂了。于
        看许式伟文章时,他提到“怎样成为一个优秀软件架构师”时,说了这么一句话:“一靠匠心,二靠悟心”(这里他的确写是悟心,不是悟性,这里悟心,也许是指“领悟心”意思吧)。我不知道怎么算匠心,也不知道什么算悟心,但是作为一个做技术的人,也许通过不断积累和提高自己,慢慢会理解这话内涵吧。 加密算法         一直一来我对加密算法都有抵触心理,原因很简单,想要理解加密
原创 2022-04-07 11:56:21
881阅读
  • 1
  • 2
  • 3
  • 4
  • 5