对称加密和非对称加密

2023-11-07

对称加密
  • 什么是对称加密?
    对称加密就是指,加密和解密使用同一个密钥的加密方式。
  • 对称加密的工作过程
    发送方使用密钥将明文数据加密成密文,然后发送出去,接收方收到密文后,使用同一个密钥将密文解密成明文读取。
  • 对称加密的优点
    加密计算量小、速度块,适合对大量数据进行加密的场景。

常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES。

对称加密的两大不足

  • 密钥传输问题:如上所说,由于对称加密的加密和解密使用的是同一个密钥,所以对称加密的安全性就不仅仅取决于加密算法本身的强度,更取决于密钥是否被安全的保管,因此加密者如何把密钥安全的传递到解密者手里,就成了对称加密面临的关键问题。(比如,我们客户端肯定不能直接存储对称加密的密钥,因为被反编译之后,密钥就泄露了,数据安全性就得不到保障,所以实际中我们一般都是客户端向服务端请求对称加密的密钥,而且密钥还得用非对称加密加密后再传输。)
  • 密钥管理问题:再者随着密钥数量的增多,密钥的管理问题会逐渐显现出来。比如我们在加密用户的信息时,不可能所有用户都用同一个密钥加密解密吧,这样的话,一旦密钥泄漏,就相当于泄露了所有用户的信息,因此需要为每一个用户单独的生成一个密钥并且管理,这样密钥管理的代价也会非常大。
AES加密

AES加密算法就是众多对称加密算法中的一种,它的英文全称是Advanced Encryption Standard,翻译过来是高级加密标准,它是用来替代之前的DES加密算法的。
AES为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同。如AES-128,也就是密钥的长度为128位,加密轮数为10轮。
在这里插入图片描述
关于AES加密,详细可参考博客:
https://blog.csdn.net/gulang03/article/details/81175854

非对称加密

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。

公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称密钥加密的使用过程:

  • A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
  • A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
  • A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
  • A将这个消息发给B(已经用B的公钥加密消息)。
  • B收到这个消息后,B用自己的私钥解密A的消息,其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。
  • 反过来,B向A发送消息也是一样。

常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)。

总结

从上面大家应该可以看出对称加密和非对称加密的区别,下面稍微进行一下总结:

(1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。
(2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
(3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。

参考:
1.https://www.jianshu.com/p/3840b344b27c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
2.https://blog.csdn.net/u013320868/article/details/54090295

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对称加密和非对称加密 的相关文章

  • 第1章 计算机基础知识

    1 1 计算机的基本概念 xff08 1 xff09 计算机的发展 计算机的诞生 1946年第一台电子数字计算机ENIAC由美国宾夕法尼亚大学研制成功 它是一个庞然大物 xff0c 共有18000个电子管 1500个继电器 xff0c 耗电
  • 计算机基础知识

    一 操作系统的作用 xff1a 1 xff1a 管理底层硬件设备 2 xff1a 整合资源 xff0c 提供给上层软件使用 二 硬件资源分类 1 xff1a 计算资源 2 xff1a 存储资源 xff1a 硬盘 U盘 光驱 3 xff1a
  • 自我理解:类模板和模板类、函数模板和模板函数

    一 类模板和模板类 1 类模板 类模板的重点是模板 表示一个专门用来产生类的模板 类模板是对一批仅仅成员数据类型不同的类的抽象 只要为这一批类创建一个类模板 给出一套程序代码 就可以用来生成多种具体的类 模板类 从而大大提高编程的效率 te
  • 局域网的组成及主要设备的作用

    局域网通常是分布在一个有限地理范内的网络系统 一般所涉及的地理范围只有几公里 通常由一个单位或组织建设拥有的计算机网 局域网由网络硬件 包括网络服务器 网络工作站 网卡 网络互联设备等 和网络传输介质 以及网络软件所组成 网络设备 即网络通
  • Ubuntu20.04 Server调整默认分辨率

    问题引入 把一台台式机安装成Ubuntu20 04 Server版本后 发现没有界面操作不方便 又给它装了个桌面 安装完后发现HDMI接到显示器的分辨率只有800 600 而且在系统配置里还不能选择其它的分辨率配置 首先怀疑是不是显卡驱动没
  • 二进制数的补码及运算

    本人研究不深 如有错误请不吝赐教 先来个最基本的介绍 参考 https blog csdn net jdq8576 article details 82425265 百度百科 https baike baidu com item 补码 源码
  • 自我理解:封装、继承和多态

    一 封装 1 概念 封装就是隐藏对象的属性和实现细节 只对外公开一些操作内部属性的方法 接口 函数 2 目的 增强安全性 简化编程 使用者不必了解具体的实现细节 只需要通过外部接口 就可以对类的内部成员进行操作 class A public
  • [计算机网络]简单入门HTTPS : 确保Web网站安全

    前言 今天也是刚好看到HTTPS 感觉HTTPS有许多需要总结的地方 这里也是花点时间给大伙总结下 今天会从下面几个点入手给大伙介绍 HTTPS如何解决现有的HTTP安全问题 和HTTP的区别 HTTPS建立连接的过程 HTTPS的缺点 其
  • 自我理解:TCP和UDP、HTTP、进程和线程

    一 TCP和UDP 1 什么是TCP和UDP TCP是面向连接的协议 发送数据前要建立连接 TCP提供的是可靠传输 UDP是无连接的协议 发送数据前不需要建立连接 是不可靠传输 2 TCP和UDP的区别 TCP是面向连接的协议 发送数据前要
  • 计算机考研复试常问问题 数据结构篇

    第一章 绪论 1 时间复杂度 时间复杂度 算法执行时所需要的计算工作量 与整个算法的执行时间和基本操作重复的次数成正比 一个语句的频度是指该语句在算法中被重复执行的次数 算法中所有语句的频度之和记为T n O T n 的数量级 数量级 数量
  • CPU的工作原理

    一 CPU的基本概念 CPU 中央处理器 是一块超大规模的集成电路 是一台计算机的运算核心和控制核心 主要功能是解释计算机指令和处理计算机软件中的数据 二 CPU的组成部分 1 运算器 运算器是对数据加工和处理的中心 由算术逻辑单元 状态寄
  • Conda 常用指令 (Mac)【下载 安装 环境配置 查看 创建 激活 配置cuda 拷贝环境】

    本文旨在介绍用conda配置一个新的深度学习环境的全过程 下载Anaconda 在 官网 中下载与python版本匹配的Anaconda Python与Anaconda版本匹配如下 图片源自 该博客 在本例中我下载的 Anaconda3 2
  • 对称加密和非对称加密

    对称加密 什么是对称加密 对称加密就是指 加密和解密使用同一个密钥的加密方式 对称加密的工作过程 发送方使用密钥将明文数据加密成密文 然后发送出去 接收方收到密文后 使用同一个密钥将密文解密成明文读取 对称加密的优点 加密计算量小 速度块
  • 高速缓存(cache)的原理: 了解计算机架构与性能优化

    计基之存储器层次结构 Author Once Day Date 2023年5月9日 长路漫漫 而今才刚刚启程 本内容收集整理于 深入理解计算机系统 一书 参看文档 捋一捋Cache 知乎 zhihu com iCache和dCache一致性
  • 第一章:计算机基础知识——知识点整理

    第一章 计算机基础知识 知识点整理 第一章 计算机基础知识 知识梳理 高频考点 1 1 信息与信息技术 1 1 1 信息与数据 1 1 2 信息社会 1 1 3 信息技术 1 1 4 计算机文化 的内涵 1 2 计算机技术概论 1 2 1
  • LaTex 加粗(加黑)的方式

    1 基本 LaTeX技巧458 关于LaTeX数学字体加粗 mathbf 会变为粗体 但也导致数学字母斜体形式的丢失 使用 amsmath package 的 boldmath 命令 boldmath f x y 3 x y y 2xy 7
  • 计算机考研复试常问问题 计算机网络篇

    一 计算机网络体系结构 1 OSI TCP IP和五层体系结构 五层协议 分为5层 自上到下分别为 应用层 传输层 网络层 数据链路层 物理层 应用层 为特定应用程序提供数据传输服务 传输单位是报文 传输层 为不同主机的进程提供通信服务 传
  • 计算机考研复试常问问题 软件工程篇

    1 什么是软件工程 软件工程是指导计算机软件开发和维护的一门工程学科 即利用工程的概念 原理 技术和方法来开发和维护软件 主要的方法 结构化方法 面向对象方法 原型方法等 软件工程三要素 方法 工具和过程 2 软件的生命周期 又称软件生存周
  • 【MacOS】SSH 设置别名+免密登录

    设置别名 首先 进入ssh的config文件 vim ssh config 按I写入 Host my name User zmq HostName 1xx xx xx xxx Port 22 输入 x保存退出 设置别名成功 可以直接 ssh
  • 阿兰·麦席森·图灵 介绍

    Alan MAthison Turing 英国数学家 逻辑学家 被称为 计算机科学之父 人工智能之父 她曾协助盟军破解德国的著名密码系统Enigma 帮助盟军取得了第二次世界大战的胜利 他对计算机的贡献在于他提出的有限状态自动机也就是图灵机

随机推荐

  • Html select标签

    Select 创建 Form 事件 属性 选中 创建 直接撸代码
  • PageHelper分页+排序

    PageHelper分页 排序 使用pageHelper插件来分页 只需在执行sql前用即可 String orderBy 排序字段 desc 按照 数据库 排序字段 倒序 排序 PageHelper startPage pageNum p
  • 二级缓存j2cache和SpringBoot整合

    简介 j2cache是开源的二级缓存库 支持实现 本地缓存Ehcache Caffeine 远程缓存Redis Memcached 常见解决方案 如一级缓存使用Ehcache 二级缓存使用Redis 上篇描述的阿里开源的jetcache 是
  • javascript读写本地sqlite数据库

    sqlite这种单文件数据库 类型简单功能强大效率也不错 非常适合单机软件开发 把一个我以前写的JavaScript sqlite数据库操作类分享给大家 还是先上代码 注释写的很清楚啦 支持增删改查 支持链式查询 使用的时候不用new sq
  • 【智能控制实验】MATLAB代码编译环境与MATLAB命令设计模糊控制器

    MATLAB代码编译环境与MATLAB命令设计模糊控制器 一 实验要求 重点学习MATLAB系统仿真软件的使用和模糊控制器工作原理 并应用MATLAB命令进行模糊控制器设计 完成模糊控制查询表的实现 模糊控制在线运行代码的实现 已知 1 1
  • vue3.2+ts错误:找不到模块“./App.vue”或其相应的类型声明。ts(2307)

    vue3 2 ts错误 找不到模块 App vue 或其相应的类型声明 ts 2307 解决方法 在项目根目录创建 env d ts 文件 如果已有 则在文件中追加 加入以下内容 declare module vue import type
  • C++STL之vector容器

    1 Vector容器的插入 1 1 简单使用vector容器的插入方法 vector的插入不难 一般我们在使用时都是使用push back插入 当使用下标法时在不指定vec大小很容易越界 编译器不会开辟默认容量 我记得以前的好像会默认开辟2
  • 数据仓库与数据湖的区别

    数据湖通常包含用于高级分析应用程序的各种大数据集 而数据仓库则存储用于基本 BI 分析和报告用途的传统事务数据 下面 让我们更仔细地看一下这两个数据存储以及它们之间的差异 1 什么是数据湖 数据湖通常是一个庞大的存储库 以本机格式存储原始数
  • Go语言面试题汇总

    正在准备golang面试的小伙伴 很荣幸 你能看到这篇文章 希望每一个看到这篇分享的小伙伴都能找到自己称心如意的工作 1 说说go语言的main函数 1 main函数不能带参数 2 main函数不能定义返回值 3 main函数所在的包必须为
  • Vue2 + ElementUI 关于$emit用法总结

    数据传递总结 父组件可以使用 props 把数据传给子组件 子组件可以使用 emit 触发父组件的自定义事件 实战 封住客户等级功能的通用表单 支持新增和编辑 定义封住子组件 levelCommon vue
  • 一行命令即可启动 Walrus丨入门教程

    今日 应用管理平台 Walrus 已正式开源 本文将介绍如何上手安装 Walrus 以及如何借助 Walrus 进行应用部署 开源地址 https github com seal io walrus 部署 Walrus 首先 您需要准备 资
  • Sublime Text 3 安装PackageControl

    操作步骤 1 复制安装信息 import urllib request os hashlib h 6f4c264a24d933ce70df5dedcf1dcaee ebe013ee18cced0ef93d5f746d80ef60 pf Pa
  • React16.3中的Refs和Forwarding Refs

    简要介绍 React16 3中修改了Refs的使用方法 并且提供了Forwarding Refs用于在父组件中操作子组件中的dom节点 本文介绍一下新的Refs表示方法以及Forwarding Refs Ref的功能就不具体说了 就是在父组
  • 如何成为更厉害的人

    01 读万卷书 行万里路 阅人无数 名师指路 自己去悟 人生每个阶段都需要找到一位认知高于自己导师 帮你指明前方道路 从而让自己少走弯路 02 融入一个高质量的圈子 一个人走的快 但一群人走的远 一个人容易放弃 但一群人更容易坚持 03 要
  • 3款最强的AI视频生成器,支持文生视频、图生视频

    当我们深入人工智能世界及其对视频创作的变革性影响时 发现人工智能视频生成器的强大功能 人工智能视频生成器正在彻底改变我们创建内容的方式 让我们比以往更轻松地以最少的努力制作高质量的视频 无论您是内容创作者 营销人员 还是只是一名人工智能爱好
  • 2020年全国高校计算机能力挑战赛C++初赛程序设计题2:九键拼音中数字与英文字母成对应关系:2--abc, 3-def, 4-ghi, 5--jkl, 6--mno, 7--pqrs, 8--tuv

    2020年全国高校计算机能力挑战赛C 初赛程序设计题2 九键拼音中数字与英文字母成对应关系 2 abc 3 def 4 ghi 5 jkl 6 mno 7 pqrs 8 tuv 9 wxyz 输入 输入一个由英文小写字母组成的字符串 长度
  • 两种方法在VMware中安装VMware Tools

    VMware Tools的主要作用是虚拟硬件的驱动 鼠标的无缝移出移入 剪贴板共享 共享主机上的文件夹等功能 方法一 1 打开 文件夹 Ubuntu 17 10 amd64 根据自己版本来看 2 在VMware Workstation主界面
  • Flume 数据流监控——Ganglia的安装与部署

    1 Ganglia的安装 1 安装 dhttpd 服务与 php yasin hadoop102 flume sudo yum y install httpd php 2 安装其他依赖 atguigu hadoop102 flume sud
  • 用Windbg解决一个Bug

    摘要 可以看到无论对于开发还是测试人员 windbg很多时候可以帮我们快速的定位问题 如果借助符号文件 Windbg完全可以实现比VC IDE更强大的调试供功能 并且有时候我们不需要源代码 不需要重新编译 直接就可以通过windbg调试和解
  • 对称加密和非对称加密

    对称加密 什么是对称加密 对称加密就是指 加密和解密使用同一个密钥的加密方式 对称加密的工作过程 发送方使用密钥将明文数据加密成密文 然后发送出去 接收方收到密文后 使用同一个密钥将密文解密成明文读取 对称加密的优点 加密计算量小 速度块