图解系列--认证

news2024/11/17 1:34:03

单向散列函数

1.什么是单向散列函数
单向散列函数有一个输入和一个输出,其中输入称为消息,输出称为散列值。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性。
在指定的散列函数处理下,无论输入的字节序列尺寸如何,输出的尺寸是固定的。

应用:
1.对输入的字节序列1,采用单向散列函数计算出散列值。将散列值1保存到可信的安全位置。
2.之后某个时刻,再次对字节序列2输入,采用单向散列函数计算散列值2。
3.若散列值1等于散列值2,则可认为字节序列1和字节序列2是一致的。即每个字节都是相等的,且长度一致。

2.单向散列函数需具备的性质
_1.根据任意长度的消息计算出固定长度的散列值
_2.能够快速计算出散列值
_3.消息不同散列值也不同
弱抗碰撞性:要找到和该指定消息具有相同散列值的另外一条消息是非常困难的。
强抗碰撞性:要找到散列值相同的两条不同的消息是非常困难。
_4.具备单向性
即无法通过散列值反算出输入消息。

单向散列过程,有时也叫消息摘要过程。

3.常用的单向散列函数
_1.MD4、MD5
能够产生128比特的散列值。MD是消息摘要的缩写。
_2.SHA-1、SHA-256、SHA-384、SHA-512
在这里插入图片描述
_3.SHA-3
最新的标准

4.应该使用哪种单向散列函数呢
MD5是不安全的,因此不应该使用。
SHA-1除了用于对过去生成的散列值进行校验之外,不应该被用于新的用途,而是应该迁 移到 SHA-2。
SHA-2 有效应对了针对 SHA-1 的攻击方法,因此是安全的,可以使用。
SHA-3 是安全的,可以使用。

5.攻击
_1.原像攻击,第二原像攻击
原像攻击是指给定一个散列值,找出具有该散列值的任意消息;第二原像攻击是指给定一条消息1,找出另外一条消息2,消息2的散列值和消息1相同。
_2.生日攻击
生日攻击或者冲突攻击,这是一种试图破解单向散列函数的“强抗碰撞性”的攻击。找到散列值相同的两条消息,而散列值则可以是任意值。

6.总结
单向散列函数可以解决消息完整性(一致性)验证,但无法解决验证消息发送者是合法发送者。验证消息发送者是否合法,是认证的任务。

消息认证码

消息认证码,可以同时识别出篡改和伪装。
1.什么是消息认证码
消息认证码是一种确认完整性并进行认证的技术。
消息认证码的输入包括任意长度的消息和一个发送者与接收者之间共享的密钥,它可以输出固定长度的数据,这个数据称为MAC值。
消息认证码中则需要使用发送者与接收者之间共享的密钥。

2.消息认证码的实现方法
_1.使用单向散列函数实现
HMAC 是一种使用单向散列函数来构造消息认证码的方法。使用SHA-1 、SHA-224 、SHA-256 、SHA-384 、SHA-512 所构造的 HMAC, 分别称为 HMAC-SHA1、HMAC-SHA-224、HMAC-SHA-256、HMAC-SHA-384、HMAC-SHA-512。

_2.使用分组密码实现
将分组密码的密钥作为消息认证码的共享密钥来使用,并用CBC模式将消息全部加密。
此时,初始化向量(IV)是固定的。由于消息认证码中不需要解密,因此将除最后一 个分组以外的密文部分全部丢弃,而将最后一个分组用作MAC 值。由于CBC模式的最后一个分组会受到整个消息以及密钥的双重影响,因此可以将它用作消息认证码。

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

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

相关文章

Hive语法,函数--学习笔记

1,排序处理 1.1cluster by排序 ,在Hive中使用order by排序时是全表扫描,且仅使用一个Reduce完成。 在海量数据待排序查询处理时,可以采用【先分桶再排序】的策略提升效率。此时, 就可以使用cluster by语法。 cluster…

支持4KHz回报还能无线充电,简约不简单的雷柏VT3S游戏鼠标上手

这两年国产鼠标的表现很让人惊喜,不仅外观做工越来越精细,配置也越来越强大,当然价格依然亲民。现在很容易找到一款搭载高端传感器、响应速度快、电池续航时间长,并且还支持无线充电的全能型鼠标。 我之前用雷柏的鼠标比较多&…

Java 教育局民办教育信息服务与监管平台

1) 项目背景 按照《中华人民共和国民办教育促进法》和《中华人民共和国政府信息公开条例》的相关规定,为满足学生和家长、社会各界获取权威信息的需求,着力解决服务老百姓最后一公里问题,达到宣传民办教育和引导家长择校的效果&#xff0…

Java Swing商品信息查询系统

内容要求 1) 本次程序设计是专门针对 Java 课程的,要求使用 Java 语言进行具有一定代码量的程序开发。程序的设计要结合一定的算法,在进行代码编写前要能够设计好自己的算法。 2)本次程序设计涉及到 Java 的基本语法,即课堂上所…

3.6-Dockerfile语法梳理及最佳实践

WORKDIR是设置当前docker的工作目录 ADD 和 COPY 为了将本地的一些文件添加到docker image里面,ADD 和 COPY的作用特别像,但是ADD 和 COPY还有一些区别,ADD不仅可以添加本地文件到docker里面,还可以将文件在添加到docker image里面…

Linux进程——system函数、popen函数

system函数&#xff08;执行shell 命令&#xff09; 头文件 #include <stdlib.h> 函数定义 int system(const char * string); 函数说明 system()会调用fork()产生子进程&#xff0c;由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令&#xff0c;…

4.Pod详解【四】

文章目录 4. Pod详解4.1 Pod介绍4.1.1 Pod结构4.1.2 Pod定义 4.2 Pod配置4.2.1 基本配置4.2.2 镜像拉取4.2.3 启动命令4.2.4 环境变量4.2.5 端口设置4.2.6 资源配额 4.3 Pod生命周期4.3.1 创建和终止4.3.2 初始化容器4.3.3 钩子函数4.3.4 容器探测4.3.5 重启策略 4.4 Pod调度4.…

牛客网刷题笔记三 寻找第K大+两数之和+合并两个排序的链表+用两个栈实现队列

算法题牛客网NC88 寻找第K大 题目&#xff1a; 思路就是做个排序&#xff0c;要求时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)&#xff0c;因此选用快排。代码&#xff1a; class Solution:def quickSort(self, a, start, end):if start > end:returnval a[start]…

利用SD存储介质扩展MAXQ20000的非易失性数据存储空间

SD存储卡是一种可移动存储介质&#xff0c;通常用于相机、手机、平板电脑等设备中存储照片、视频、音乐等数据。SD存储卡的全称为Secure Digital Memory Card&#xff0c;是由SD Card Association制定的一种标准格式。它具有体积小、存储容量大、读写速度快、价格低廉等优点。目…

Triage沙箱监控

Triage沙箱可以免费分析恶意软件样本。最先进的恶意软件分析沙箱&#xff0c;具有您需要的所有功能。 在可定制的环境中提交大量样本&#xff0c;并对许多恶意软件系列进行检测和配置提取。立即查看公开报告并对您的恶意软件进行分类&#xff01; 官方网址&#xff1a;https:…

关于链表的几道算法题

1.删除链表的倒数第n个节点 力扣https://leetcode.cn/submissions/detail/482739445/ /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(…

Spring Boot中实现支付宝、微信和银联支付的功能

Spring Boot中实现支付宝、微信和银联支付的功能 在Spring Boot中实现支付宝、微信和银联支付的功能&#xff0c;通常需要使用它们各自的SDK&#xff08;Software Development Kit&#xff09;。以下是一个简单的示例代码&#xff0c;演示了如何在Spring Boot项目中集成支付宝…

22. 深度学习 - 自动求导

Hi&#xff0c;你好。我是茶桁。 咱们接着上节课内容继续讲&#xff0c;我们上节课已经了解了拓朴排序的原理&#xff0c;并且简单的模拟实现了。我们这节课就来开始将其中的内容变成具体的计算过程。 linear, sigmoid和loss这三个函数的值具体该如何计算呢&#xff1f; 我们…

使用Spring Boot结合JustAuth实现支付宝、微信、微博扫码登录功能

使用Spring Boot结合JustAuth实现支付宝、微信、微博扫码登录功能 在使用Spring Boot结合JustAuth实现支付宝、微信、微博扫码登录功能之前&#xff0c;需要先确保已经配置好Spring Boot项目&#xff0c;并且添加了JustAuth的依赖。你可以在项目的pom.xml文件中添加如下依赖&a…

麦克风阵列入门

文章引注&#xff1a; http://t.csdnimg.cn/QP7uC 一、麦克风阵列的定义 所谓麦克风阵列其实就是一个声音采集的系统&#xff0c;该系统使用多个麦克风采集来自于不同空间方向的声音。麦克风按照指定要求排列后&#xff0c;加上相应的算法&#xff08;排列算法&#xff09;就可…

2 Redis的高级数据结构

1、Bitmaps 首先&#xff0c;最经典的应用场景就是用户日活的统计&#xff0c;比如说签到等。 字段串&#xff1a;“dbydc”&#xff0c;根据对应的ASCII表&#xff0c;最后可以得到对应的二进制&#xff0c;如图所示 一个字符占8位&#xff08;bit&#xff09;&#xff0c;…

【GCN】GCN学习笔记一

谱域图卷积 卷积 卷积定义离散空间的卷积 图卷积简介 卷积定理谱域图卷积实现思路如何定义图上的傅里叶变换拉普拉斯矩阵 &#xff08;Laplacian Matrix&#xff09;拉普拉斯矩阵的性质拉普拉斯矩阵的谱分解拉普拉斯矩阵与拉普拉斯算子 图傅里叶变换 图上的信号表示经典傅里叶变…

常见Web安全

一.Web安全概述 以下是百度百科对于web安全的解释&#xff1a; Web安全&#xff0c;计算机术语&#xff0c;随着Web2.0、社交网络、微博等等一系列新型的互联网产品的诞生&#xff0c;基于Web环境的互联网应用越来越广泛&#xff0c;企业信息化的过程中各种应用都架设在Web平台…

性格懦弱怎么办?如何改变懦弱的性格?

性格懦弱是一个比较常见的话题了&#xff0c;懦弱带来的苦恼和困扰&#xff0c;深深影响着我们的生活&#xff0c;人际关系&#xff0c;以及事业的发展。然后如何摆脱懦弱&#xff0c;却并非易事&#xff0c;尤其是对于成年人来说&#xff0c;这种懦弱的性格特征&#xff0c;已…