通过加密算法实现数据的完整性、机密性及身份验证

2023-05-16

 一般互联网上加密算法分为三种:
                对称加密、单向加密、非对称加密
下面就来介绍下如何通过上面的三种加密算法实现数据的机密性、完整性及身份验证。

对称机密算法:
     对称加密算法提供加密算法本身并要求用户提供密钥以后,能够结合算法和密钥将明文转换为密文,反之,之所以称它为对称加密,是因为加密和解密使用的密钥是相同的。对称加密算法:加密算法和解密算法,只不过使用的是相同密钥。


 

\
 

解:
对称加密虽然解决了数据在传输过程得到了数据的完整性,那么如果Tom给许多用户发送数据Data时,都要在本地生成对称密钥并通过一种密钥交换方式(Hiffie-Hellman)传送给对方,这样的话Tom用户必须记住所有密钥对吧!不然的话,如果其中一个用户截取到数据,也可以查看数据内容,为了保证数据的机密性,Tom必须为每个用户生成一组密钥来保证数据的机密性。
所以说对称密钥解决了数据的机密性,但不便于管理密钥。
常见的对称加密算法有:
DES:Data Encrption Standard (默认为56bit)
3DES:经过3词DES加密方式
AES:Advanced Encrption Standard (高级加密标准)
         AES192(192bit)   AES256(256bit)    AES512(512bit)
Blowfish


单向加密算法:(保证了数据的完整性,但不能保证数据的机密性)
单向机密算法的特征:
输入一样:输出必然一样
雪崩效应:输入微小改变,将引起结果巨大该表
定长输出:无论原始数据多大,其结果大小一样 www.it165.net
不可逆:无法根据数据的指纹及特征码,还原原始数据
下面通过一个命令来看看雪崩效应的效果:(/etc/passwd为例)

 

\
 

好了,我就通过下面的图片来了解下,单向加密算法是如何进行的?

 

\
 

注:如果中间Jerry将Tom发来的数据截获,并将数据重新利用加密算法进行将数据提取指纹及特征码,发送给Jack,Jack并不能保证数据时Tom发送的,也就是说单向加密可以保证数据的完整性,但不能保发送者的身份。

 

\
 

此时,Jerry将Tom发来的数据截获到本地,并通过Diffie-Hellman进行生成密钥,并将Data数据进行加密,发送给Jack,Jack收到数据 却不能真正判断发送方的身份。   

单向加密类型:
MD4
MD5 128bit


SHA1 160bit
SHA192    SHA256   SHA384

非对称加密算法:(公钥加密算法)
非对称加密算法+CA:保证了用户的身份,并解决了对称加密算法的密钥管理机制
非对称密钥算法通常在本地生成一对密钥,一个是私钥,而另一个是公钥.一般公钥是从
私钥中提取的。所以公钥加密,私钥解密,私钥加密,公钥解密。
我们可以通过一个命令来实现生成私钥,并在私钥中提取公钥(如图)

\
 

RSA:可以进行数据的加密和签名
DSA:只能用于签名
ElGAMAL

概念补充:什么是CA:
CA:就是一个权威的发证机构,而且是公认,所以在本地生成一对密钥,一个是私钥,另一个是公钥,将公钥发送给CA,让CA机构进行数字签名,这让就可以验证其身份,这样在通过单向机密的结合实现数据的机密性、完整性及身份验证的信息。


 

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

通过加密算法实现数据的完整性、机密性及身份验证 的相关文章

  • WinScp密钥登录

    使用密码登录非常的方便 xff0c 但是有的客户的云服务器上是限定只能通过密钥登录 我一般使用命令行的scp命令就可以正常上传 xff0c 但是对于我一些同事来说 xff0c 就很不方便 生成密钥 这个不难 xff0c 可以参考我之前的文章
  • FileZilla密钥登录

    使用密码登录非常的方便 xff0c 但是有的客户的云服务器上是限定只能通过密钥登录 我一般使用命令行的scp命令就可以正常上传 xff0c 但是对于我一些同事来说 xff0c 就很不方便 生成密钥 这个不难 xff0c 可以参考我之前的文章
  • node js 设置淘宝源

    淘宝镜像源最新地址 span class token function npm span config span class token builtin class name set span registry https registry
  • 手推DNN,CNN池化层,卷积层反向传播

    反向传播算法是神经网络中用来学习的算法 xff0c 从网络的输出一直往输出方向计算梯度来更新网络参数 xff0c 达到学习的目的 xff0c 而因为其传播方向与网络的推理方向相反 xff0c 因此成为反向传播 神经网络有很多种 xff0c
  • 软件架构概念和面向服务的架构

    摘要 软件架构作为软件开发过程的一个重要组成部分 xff0c 有着各种各样的方法和路线图 xff0c 它们都有一些共同的原则 基于架构的方法作为控制系统构建和演化复杂性的一种手段得到了推广 引言 在计算机历史中 xff0c 软件变得越来越复
  • 初识强化学习,什么是强化学习?

    相信很多人都听过 机器学习 和 深度学习 但是听过 强化学习 的人可能没有那么多 那么 什么是强化学习呢 强化学习是机器学习的一个子领域 它可以随着时间的推移自动学习到最优的策略 在我们不断变化的纷繁复杂的世界里 从更广的角度来看 即使是单
  • 强化学习形式与关系

    在强化学习中有这么几个术语 智能体 Agent 环境 Environment 动作 Action 奖励 Reward 状态 State 有些地方称作观察 Observation 奖励 Reward 在强化学习中 奖励是一个标量 它是从环境中
  • 多层网络和反向传播笔记

    在我之前的博客中讲到了感知器 xff08 感知器 xff09 xff0c 它是用于线性可分模式分类的最简单的神经网络模型 xff0c 单个感知器只能表示线性的决策面 xff0c 而反向传播算法所学习的多层网络能够表示种类繁多的非线性曲面 对
  • 如何准备校招?

    秋招已经落尽尾声 xff0c 今天小牛想把自己的学习经验分享给大家 xff0c 避免大家多走弯路 1 首先需要确定自己想从事哪方面的工作 比如服务端开发 xff08 Java开发工程师 xff0c C 43 43 开发工程师 xff09 x
  • 在Kaggle手写数字数据集上使用Spark MLlib的朴素贝叶斯模型进行手写数字识别

    昨天我在Kaggle上下载了一份用于手写数字识别的数据集 xff0c 想通过最近学习到的一些方法来训练一个模型进行手写数字识别 这些数据集是从28 28像素大小的手写数字灰度图像中得来 xff0c 其中训练数据第一个元素是具体的手写数字 x
  • 在Kaggle手写数字数据集上使用Spark MLlib的RandomForest进行手写数字识别

    昨天我使用Spark MLlib的朴素贝叶斯进行手写数字识别 xff0c 准确率在0 83左右 xff0c 今天使用了RandomForest来训练模型 xff0c 并进行了参数调优 首先来说说RandomForest 训练分类器时使用到的
  • PyTorch模型保存与加载

    torch save xff1a 保存序列化的对象到磁盘 xff0c 使用了Python的pickle进行序列化 xff0c 模型 张量 所有对象的字典 torch load xff1a 使用了pickle的unpacking将pickle
  • Ubuntu18.04 上 安装微信(Deepin-Wechat)

    文章目录 一 安装Deepin Wine环境二 安装Deepin 版微信 微信什么时候支持在linux下的安装包啊 xff0c 我的天哪 xff0c 感觉受到了针对 xff0c 各位看官且看下图 xff1a 这里先作声明 xff1a 本文的
  • ROS机器人操作系统——ROS介绍

    AI is the new electricity 1 ROS发展史 本世纪开始 关于人工智能的研究进入了大发展阶段 包括全方位的具体的AI 例如斯坦福大学人工智能实验室STAIR Stanford Artificial Intellige
  • 如何快速学习一门计算机语言

    一 4步掌握一门计算机语言 1 学习语言的语法 xff0c 关键字 xff0c 以及基本的库 xff08 基础阶段 xff09 2 学习语言的第三方库和各个组件 xff08 OS xff0c 数据库 xff0c 网络 xff09 之间的连用
  • CentOs6.8离线安装svn,并设置自动更新

    CentOs6 8离线安装svn xff0c 并设置自动更新 离线安装所需依赖离线安装 GCC xff0c 如果系统已经有 GCC 了 xff0c 跳过这一步需要的 rpm 包安装顺序 离线安装 openssl需要的代码编译设置环境变量 离
  • Linux ping不通,连不上网的解决办法

    Linux ping不通 xff0c 连不上网的解决办法 可能原因是DNS没有配置好 方法一 xff1a 修改vi etc resolv conf 增加如下内容 xff1a nameserver 114 114 114 114 电信的DNS
  • Android——多进程

    之前我们了解了 Java 多线程浅析 Android Handler详解 Android HandlerThread浅析 Java ThreadPool线程池 让我们继续看看Android多进程 xff1a 1 概述 默认情况下 xff0c
  • React、Ant Desgin自定义加载动画,lottie-web 将json解析成动画

    在项目中 xff0c 遇到需要在网页首屏 xff0c 展示动画的需求 xff0c 你会想到怎么做 xff1f 思路一 xff1a 设计师导出gif图片 xff0c 用img进行展示 缺点 xff1a 图片失真 xff0c 影响效果 思路二

随机推荐

  • mac下安装多版本PHP及切换

    mac下安装多版本PHP及切换 工作环境一直是PHP5 6 xff0c 后来发布了PHP7 xff0c 性能提升不少 xff0c 如今打算试试PHP7 xff0c 所以就有了两个php版本的需求 本文的原理就是用一个php管理工具 xff0
  • 短视频拍摄脚本怎么写

    优质的短视频每一个镜头都经过精心设计 xff0c 镜头的设计就是利用镜头脚本 xff0c 提前设想好一切想要的镜头效果和画面 xff0c 最终作品才能一气呵成的呈现出来 xff0c 接下来就来分析一下短视频拍摄脚本怎么写 xff0c 短视频
  • 串口开发之环形缓冲区

    01 简介 串口的基本应用 xff0c 使用串口中断接收数据 xff0c 串口中断发送回包 xff08 一般可以使用非中断形式发送回包 xff0c 在数据接收不频繁的应用中 串口接收中断保证串口数据及时响应 xff0c 使用非中断方式发送回
  • fastboot 命令

    1 fastboot概念 fastboot fastboot是PC与bootloader的USB通信的命令行工具 xff0c 通过向bootloader传送刷机文件 xff08 img xff09 实现Android系统分区重烧 fastb
  • Android Studio 开启视图绑定 viewBinding

    Google 在 Android Studio 3 6 Canary 11 及更高版本中提供了一个 viewBinding 的开关 xff0c 可以开启视图绑定功能 xff0c 以此来替代 findViewById viewBinding功
  • ViewPager 装载fragment 页面显示空白

    ViewPager 装载fragment 页面显示空白 xff0c 这个时候有两种情况 xff1a 在分页面较多的情况下 使用了 FragmentPagerAdapter xff0c 可能会导致第二次加载页面显示空白或是多次滑动页面后页面空
  • The following packages have unmet dependencies: openssh-server : Depends: openssh-client (= 1:6.6p1

    在虚拟机中安装openssh server的时候报了这个错误 xff0c 不知道这台虚拟机抽了什么风 xff0c 别的虚拟机都能顺利安装 xff0c xff0c xff0c 提示说是openssh server 依赖于 openssh cl
  • Docker Desktop stopped 问题解决

    推广博客 xff1a Docker Desktop stopped 问题解决
  • windows连接远程桌面必须要有用户名和密码

    被远程连接的电脑如果有用户名但没有密码 xff0c 连接时需要输入密码时空着会导致无法连接 想想也是 xff0c 如果没有密码 xff0c 只要有人连入电脑所在局域网 xff0c 就可以通过ip地址和用户名连入电脑 xff0c 非常不安全
  • Android中APK签名工具之jarsigner和apksigner详解

    一 工具介绍 jarsigner是JDK提供的针对jar包签名的通用工具 位于JDK bin jarsigner exe apksigner是Google官方提供的针对Android apk签名及验证的专用工具 位于Android SDK
  • Android NumberPicker的基本用法及常见问题汇总

    前言 在项目中需要一个选择人数的控件 xff0c 于是想到了NumberPicker xff0c 这个控件相对不是那么热门 xff0c 我也是第一次用 xff0c 所以遇到了一些问题 xff0c 这里做个小结 正文 首先来看一下最终的效果
  • angular将html代码输出为内容

    在前端与后台的撕逼中 xff0c 很大一部分是因为数据的问题 使用angular会遇到这样的问题 xff0c 后台返回的数据不是自己想要的纯字符串 xff0c 而是带有html标签及属性的 xff0c 那么我们将它输出来后 xff0c 在页
  • Jetpack新成员,App Startup一篇就懂

    Android 11系统已经来了 xff0c 随之而来的是 xff0c Jetpack家族也引入了许多新的成员 其实以后Android的更新都会逐渐采用这种模式 xff0c 即特定系统相关的API会越来越少 xff0c 更多的编程API是以
  • appWidget

    构建应用微件 应用微件是可以嵌入其他应用 xff08 如主屏幕 xff09 并接收定期更新的微型应用视图 这些视图称为界面中的微件 xff0c 您可以使用应用微件提供程序发布微件 能够容纳其他应用微件的应用组件称为应用微件托管应用 下面的屏
  • Jetpack新成员,Paging3从吐槽到真香

    各位小伙伴们大家早上好 随着Android 11的正式发布 xff0c Jetpack家族也引入了许多新的成员 我之前有承诺过 xff0c 对于新引入的App Startup Hilt Paging 3 xff0c 我会分别写一篇文章进行介
  • kotlin--综合运用Hilt、Paging3、Flow、Room、Retrofit、Coil等实现MVVM架构

    前面我们使用Java来运用JetPack中的一系列组件 xff0c 又使用kotlin运用这些组件实现了一系列功能 xff1a kotlin Flow文件下载kotlin Flow结合Room运用kotlin Flow结合retrofit运
  • kotlin基本类型

    基本类型 在 Kotlin 中 xff0c 所有东西都是对象 xff0c 在这个意义上讲我们可以在任何变量上调用成员函数与属性 一些类型可以有特殊的内部表示 例如 xff0c 数字 字符以及布尔可以在运行时表示为原生类型值 xff0c 但是
  • SQL 外来键的用法 references

    外来键是一个 或数个 指向另外一个表格主键的栏位 外来键的目的是确定资料的参考完整性 referential integrity 换言之 xff0c 只有被准许的资料值才会被存入资料库内 举例来说 xff0c 假设我们有两个表格 xff1a
  • SQLite设置_id自增的方法

    只需在建表的时候指定类型 xff1a INTEGER PRIMARY KEY AUTOINCREMENT 然后在存入数据的时候不设置其值 xff08 或设置为null xff09 即可 如建表 xff1a sql view plain co
  • 通过加密算法实现数据的完整性、机密性及身份验证

    一般互联网上加密算法分为三种 xff1a 对称加密 单向加密 非对称加密 下面就来介绍下如何通过上面的三种加密算法实现数据的机密性 完整性及身份验证 对称机密算法 xff1a 对称加密算法提供加密算法本身并要求用户提供密钥以后 xff0c