常用加密算法

news2025/1/11 18:43:29

目录

常见的加密算法可以分成三种:

对称加密算法

DES

3DES

AES

非对称加密

RSA

ECC

Hash算法

MD5

SHA1

算法对比

算法选择


常见的加密算法可以分成三种:

  • 对称加密算法;
  • 非对称加密算法;
  • Hash算法;

接下来我们就来看看这些算法。

对称加密算法

 对称加密算法,如其名,就是使用同一个秘钥进行加密和解密。

优点是速度较快,适合对数据量比较大的数据进行加密。

缺点是密钥的保存方式需要保证,一旦加密或者解密的哪一方泄漏了密钥,都会导致信息的泄漏。

常用的对称加密算法有:DES3DESDESXBlowfishIDEARC4RC5RC6AES

DES

DES加密算法是一种分组加密算法,以64位为分组对数据进行加密,他的密钥长度为56位,速度较快,适合用于大量数据加密的场合。

3DES

基于DES加密,对一块数据使用三个不同的密钥进行加密三次,强度更高。

AES

高级加密标准,是新一代加密算法标准,取代DES,速度快,安全级别高。密钥长度最少支持128、192、256,分租长度128位。

非对称加密

与对称加密相对的,非对称加密需要两个密钥,一个公开密钥(Public Key),一个私有密钥(Private Key)。公钥和私钥是一对,如果使用公钥进行加密的数据,只有对应的私钥才能解密。相对的,如果是使用私钥加密的数据,只有对应的公钥才能解密。

优点是公钥可以被任何人知道,而公钥的泄漏也不会导致信息泄漏,但是一旦私钥泄漏了就会导致信息泄漏。

常用的非对称加密算法有:RSAECC(移动设备用)Diffie-HellmanEl GamalDSA(数字签名用)

RSA

RSA加密算法是目前最有影响力的公钥加密算法,并且被普遍任务是最优秀的公钥方案之一。RSA是第一个能同时加密和数字签名的算法,它能够抵抗到目前为止已知的所有密码攻击。

RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是如果想要对其进行因式分解却极其困难,因此可以将乘积公开作为密钥。

ECC

ECC使用的是椭圆曲线编码学,相对于RSA,ECC的抗攻击性更强,并且计算量小,处理速度快,存储空间占用小,所以适用于移动设备使用。

Hash算法

Hash算法(哈希散列算法)特别之处在于它是一种单向算法,即不可逆,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,但是却不能通过这个Hash值重新获得目标信息。

因为此特点,Hash算法通常用在存储不可还原的密码存储,信息完整校验等地方。

常用的Hash算法有:MD2MD4MD5HAVALSHASHA-1HMACHMAC-MD5HMAC-SHA1

MD5

MD5加密算法可以简单的分析为以512位分组来处理输入的信息,且每一个分组又被划分为16个32位的子分组,经过一系列的处理之后,算法的输出由4个32位分组组成,将这4个32位分组级联后就会生成一个128位散列值。

MD5大多被用于软件的密码认证和钥匙识别上。

SHA1

SHA1和MD5一样是流行的信息摘要算法。对于长度小于2’64位的消息,SHA1会生成一个160位的信息摘要,当接收到消息的时候,这个消息摘要可以用来验证数据的完整性,在传输的过程中,数据很可能发生变化,那么这时候就会生成不同的信息摘要。SHA1不可以从消息摘要中复原信息,而两个不同的消息不会产生同样的信息摘要。这样,SHA1就可以用来验证数据的完整性。

算法对比

名称密钥长度运算速度安全性资源消耗加密类型
DES56位较快对称加密
3DES168位对称加密
IDEA128位较慢对称加密
AES128、192、256位对称加密
RSA1024、2048、3072、4096位非对称加密
DSA1024、2048、3072、4096位非对称加密
ECC256非对称加密
SHA-1Hash加密
MD5Hash加密

算法选择

对称加密的算法相较于非对称加密算法会快很多,如果需要对大量的数据进行加密时,建议采用对称加密算法,加快加密解密速度。

而对于需要签名的情况,只能使用非对称加密。

当数据量很小,而密钥的管理用来决定数据安全时,最好使用非对称加密。

在选定了算法之后,选择多少位的密钥也是一个难题,一般情况下,密钥越长,运行的速度越慢,所以我们要根据实际需要选择加密的位数,一般来说,RSA采用1024位ECC采用160位AES采用128位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/424034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文 : Multi-Kernel Broad Learning systems Based on Random Features

Multi-Kernel Broad Learning systems Based on Random Features:A Novel Expansion for Nonlinear Feature Nodes 基于核方法的强大性能,本文提出了一种基于多核的BLS系统扩展方法。首先,将多核形式的非线性特征映射合并为广义学习系统的特征节点; 然后…

液晶显示器输入信号接口(一) —— VGA

VGA1. 简介2. VGA接口3. VGA线4. 技术原理4.1 信号传输4.2 模拟信号的扫描方式4.3 参数本文主要介绍VGA,其它输入输出信号接口介绍可从以下链接跳转: 液晶显示器输入信号接口(二) —— DVI 液晶显示器输入信号接口(三) —— HDMI 液晶显示器输入信号接口…

Mysql高级 学习笔记分享

索引:Index是帮助Mysql高效获取数据的数据结构 索引是一种数据结构 ---排好序的快速查找数据结构 、 某种满足特定查找算法的数据结构、以某种方式指向数据 两大功能:查找快、排好序 目的在于提高查询效率,类比字典 如果没有索引&a…

【Vue】学习笔记-列表渲染/数据监视

列表渲染/数据监视基本列表Key的作用与原理列表过滤列表排序Vue 数据监视原理基本列表 v-for指令 用于展示列表数据语法:v-for“(item,index) in xxx” :key“yyy”可遍历:数组,对象,字符串(用的很少)&am…

中国农业大学821数据结构经验贴

中国农业大学821经验贴目录个人情况说明初试复习经验数学二英语二政治数据结构复试复习经验目录 个人情况说明 初试成绩 复试成绩 复试成绩在平均水平,综合成绩第五 本科经历 河南双非GPA:3.79,专业排名第6竞赛经历:CCPC省银&…

Matlab进阶绘图第16期—三维填充折线图

三维填充折线图是在三维折线图的基础上,对其与XOY平面之间的部分进行颜色填充,从而能够更好地刻画细节变化。 由于Matlab中未收录三维填充折线图的绘制函数,因此需要大家自行设法解决。 本文使用自制的FilledPlot3小工具进行三维填充折线图…

计算机网络第一章(概述)【湖科大教书匠】

1. 各种网络 网络(Network)由若干**结点(Node)和连接这些结点的链路(Link)**组成多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(互连网)。因此,互联网是"网络的网络(Network of Networks)"**因特…

扩散模型的Prompt指南:如何编写一个明确提示

Prompt(提示)是扩散模型生成图像的内容来源,构建好的提示是每一个Stable Diffusion用户需要解决的第一步。本文总结所有关于提示的内容,这样可以让你生成更准确,更好的图像 一个好的提示 首先我们看看什么是好的提示…

MCM箱模型建模方法及大气O3来源解析

详情点击链接:MCM箱模型建模方法及大气O3来源解析一、大气中O3形成、MCM和Atchem 2原理及Linux系统安装1.大气中O3形成的原理 2、MCM原理及基本流程3、Atchem 2 下载安装4、Linux系统安装5、Atchem 2 运行需要的其他工具A、Fortran;B、Python&#xff1…

小程序分包(普通分包、独立分包)

普通分包和独立分包的区别 当小程序从普通的分包页面启动的时候,首先需要下载主包独立分包是不依赖看于主包就可以运行,提升分包的执行速度,一个小程序可以有多个独立分包。 独立分包属于分包的一种。普通分包的所有限制都对独立分包有效。独…

基于LDA+SVM实现人脸识别模型

基于LDASVM实现人脸识别模型 描述 人脸识别(图像识别)是机器学习领域十经典的应用,在本质上,人脸识别属于监督学习中的分类问题。前面章节中我们已经学习了支持向量机(SVM),该算法在图像分类领…

专为智能设备安全打造 | 基于ACM32 MCU的智能断路器方案

随着我国电网建设的快速发展,数字化变电站成为建设和研究的热点,数字化变电站的核心在于一次设备的智能化与二次设备的网络化,对于断路器这种极其重要的电力一次设备而言,其智能化的实现有十分重要的意义,断路器智能化…

耗时半月,终于把牛客网上的软件测试面试八股文整理成了PDF合集(测试基础+linux+MySQL+接口测试+自动化测试+测试框架+jmeter测试+测试开发)

大家好,最近有不少小伙伴在后台留言,近期的面试越来越难了,要背的八股文越来越多了,考察得越来越细,越来越底层,明摆着就是想让我们徒手造航母嘛!实在是太为难我们这些程序员了。 这不&#xf…

【Git】速食Git,一文学会Git使用

1.什么是版本控制 版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。【通俗来说就跟我们所玩的游戏一样,不断地更新迭代游戏内容,比如…

微服务高级篇学习【4】之多级缓存

文章目录前言一 多级缓存二 JVM进程缓存2.1 案例导入2.1.1 使用docker安装mysql2.1.2 修改配置2.1.3 导入项目工程2.1.4 导入商品查询页面2.1.5 反向代理2.2 初识Caffeine2.3 实现JVM进程缓存三 Lua脚本入门3.1 安装Lua3.2 Lua语法学习四 实现多级缓存4.1 OpenResty简介4.2 Ope…

STK实例场景创建及TLE文件导入

学习过程主要参考杨颖、王琦老师的《STK在计算机仿真中的应用》。(值得注意的是,书中的STK版本为5.X,我使用的版本为11.6) 创建实例场景 在默认的工具条单击第一个按钮(或File→New),并设置场…

【NAS群晖drive异地访问】远程连接drive挂载电脑硬盘「内网穿透」

文章目录前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用3. 结语转发自CSDN远程穿透的文章:【群晖…

魔兽世界私服架设教程—魔兽大服务器合并列表

都说魔兽世界是最经典的网游,可惜我沉迷于程序的世界, 用以下命令down源码 git clone git://github.com/mangos/mangos.git 编译的时候会出错,找不到以下两个文件 revision.h SystemConfig.h 其实以上文件只是简单的定义同个编译的宏而…

第一章 初识NANO板卡

有人说:一个人从1岁活到80岁很平凡,但如果从80岁倒着活,那么一半以上的人都可能不凡。 生活没有捷径,我们踩过的坑都成为了生活的经验,这些经验越早知道,你要走的弯路就会越少。 本文链接:第一章 初识NANO…

事实胜于雄辩,苹果MacOs能不能玩儿机器/深度(ml/dl)学习(Python3.10/Tensorflow2)

坊间有传MacOs系统不适合机器(ml)学习和深度(dl)学习,这是板上钉钉的刻板印象,就好像有人说女生不适合编程一样的离谱。现而今,无论是Pytorch框架的MPS模式,还是最新的Tensorflow2框架,都已经可以在M1/M2芯片的Mac系统…