AUTH:basic认证和digest认证

2023-05-16

Http authentication....BASIC:

In the context of an HTTP transaction, basic access authentication is a method for a web browser or other client program to provide a user name and password when making a request.[1]

Before transmission, the user name is appended with a colon and concatenated with the password. The resulting string is encoded with the Base64 algorithm. For example, given the user name 'Aladdin' and password 'open sesame', the string 'Aladdin:open sesame' is Base64 encoded, resulting in 'QWxhZGRpbjpvcGVuIHNlc2FtZQ=='. The Base64-encoded string is transmitted in the HTTP header and decoded by the receiver, resulting in the colon-separated user name and password string.

While encoding the user name and password with the Base64 algorithm makes them unreadable to the unaided eye, they are as easily decoded as they are encoded. Security isnot the intent of the encoding step. Rather, the intent of the encoding is to encode non-HTTP-compatible characters that may be in the user name or password into those that are HTTP-compatible.

One advantage of the basic access authentication is all web browsers support it. Rarely it is used on publicly accessible Internet web sites but may sometimes be used by small, private systems. A later mechanism, digest access authentication, was developed in order to replace the basic access authentication and enable credentials to be passed in a relatively secure manner over an otherwise unsecure channel.

 

Http authentication.....DIGEST:

Digest access authentication is one of the agreed-upon methods a web server can use to negotiate credentials with a user's web browser. It uses encryption to send the password over the network, which is safer than the Basic access authentication that sends plaintext.

Technically, digest authentication is an application of MD5 cryptographic hashing with usage of nonce values to discourage cryptanalysis. It uses the HTTP protocol.

HTTP digest authentication is designed to be more secure than traditional digest authentication schemes.

Digest access authentication is intended as a security trade-off. It is intended to replace unencrypted HTTP basic access authentication. It is not, however, intended to replace strong authentication protocols, such as public-key or Kerberos authentication.

1.  basic认证是把用户和密码通过base64加密后发送给服务器进行验证

2.  digest认证则是把服务器响应的401消息里面的特定的值和用户名以及密码结合起来进行不可逆的摘要算法运算得到一个值,然后把用户名和这个摘要值发给服务器,服务通过用户名去 在自己本地找到对应的密码,然后进行同样的摘要运算,再比较这个值是否和客户端发过来的摘要值一样。

TTP协议规范的另一种认证模式是Digest模式,在HTTP1.1时被提出来,它主要是为了解决Basic模式安全问题,用于替代原来的Basic认证模式,Digest认证也是采用challenge/response认证模式,基本的认证流程比较类似,整个过程如下:

①浏览器发送http报文请求一个受保护的资源。

②服务端的web容器将http响应报文的响应码设为401,响应头部比Basic模式复杂,WWW-Authenticate: Digest realm=”myTomcat”,qop="auth",nonce="xxxxxxxxxxx",opaque="xxxxxxxx" 。其中qop的auth表示鉴别方式;nonce是随机字符串;opaque服务端指定的值,客户端需要原值返回。

③浏览器弹出对话框让用户输入用户名和密码,浏览器对用户名、密码、nonce值、HTTP请求方法、被请求资源URI等组合后进行MD5运算,把计算得到的摘要信息发送给服务端。请求头部类似如下,Authorization: Digest username="xxxxx",realm="myTomcat",qop="auth",nonce="xxxxx",uri="xxxx",cnonce="xxxxxx",nc=00000001,response="xxxxxxxxx",opaque="xxxxxxxxx" 。其中username是用户名;cnonce是客户端生成的随机字符串;nc是运行认证的次数;response就是最终计算得到的摘要。

④服务端web容器获取HTTP报文头部相关认证信息,从中获取到username,根据username获取对应的密码,同样对用户名、密码、nonce值、HTTP请求方法、被请求资源URI等组合进行MD5运算,计算结果和response进行比较,如果匹配则认证成功并返回相关资源,否则再执行②,重新进行认证。

⑤以后每次访问都要带上认证头部。

其实通过哈希算法对通信双方身份的认证十分常见,它的好处就是不必把具备密码的信息对外传输,只需将这些密码信息加入一个对方给定的随机值计算哈希值,最后将哈希值传给对方,对方就可以认证你的身份。Digest思想同样采如此,用了一种nonce随机数字符串,双方约好对哪些信息进行哈希运算即可完成双方身份的验证。Digest模式避免了密码在网络上明文传输,提高了安全性,但它仍然存在缺点,例如认证报文被攻击者拦截到攻击者可以获取到资源

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

AUTH:basic认证和digest认证 的相关文章

  • HTTP digest认证

    HTTP的basic认证是通过明文来传输用户名和密码 xff0c 安全性不够 xff0c 因此HTTP又推出了摘要认证的方式来验证用户名和密码 流程和Basic认证差不多 1 浏览器访问服务端受保护的资源 xff0c 服务端返回401 同时
  • HTTP Auth

    文章目录 关于 HTTP Auth1 session2 authorization 的 http header2 1 Basic 形式2 2 Bearer 类型 xff08 token xff09 参考资源 free coder xff1a
  • HTTP Basic 认证

    HTTP Basic 认证 Basic 认证是 Web 服务器于客户端之间进行认证的一种方式 xff0c 最初是在HTTP 1 0 规范 xff08 RFC 1945 xff09 中定义 xff0c 后续的有关安全的信息可以在HTTP 1
  • linux basic ------ dd 和 cp 的区别

    问 xff1a 看了一些关于dd和cp的命令 xff0c 但是我始终无法明白dd和cp之间有什么不同 xff1f 不是都可以看成是备份的作用么 xff1f 还有什么区别呢 xff1f 答 xff1a 1 dd是对块进行操作的 xff0c c
  • HTTP认证模式:Basic & Digest

    引言 经常在工作中使用到了各种认证方式 xff0c 但从未考虑过这些认证方式所属的知识范畴 xff0c 同时也解释不清楚它们 曾用到的认证方式 xff08 看看是否您也用过 xff0c 但很难解释清楚他们 xff09 xff1a Basic
  • Rails Digest认证实现和原理

    优势 Http Digest是一种Http 不仅限于Web页面 认证框架 xff0c 相比通常使用的基本认证 xff0c Digest认证的优点是相对安全 基于网络标准和简单 xff0c 它不需要编写登录表单页面 xff0c 对登录信息进行
  • PHP HTTP Digest校验

    PHP作为客户端进行HTTP Digest校验 span class token comment 请求方法 span span class token variable username span span class token oper
  • Digest来验证

    Apache默认使用basic模块验证 xff0c 但它只是明文验证 Digest验证 xff0c 是用md5摘要值进行对比 httpRequest getAuthType 方法 xff0c 可以得到网页的验证方式request BASIC
  • python Requests添加Auth和Cert

    最近通过postman发起另外一个项目的请求 xff0c 鉴权较为复杂 xff0c 首先需要设置cert xff0c postman中设置如下 xff1a 需要设置basic auth的参数 然后将接口返回的token放入auth的bear
  • HTTP AUTH验证

    何为http auth http auth是一种基础的用户验证 xff0c 原理是将用户名 密码base64加密后放在http的请求头部Authorization 发给服务器 浏览器的做法 当你访问一个需要http auth验证的资源时 x
  • Windows Vista介绍概要

    正文 Windows Vista介绍概要 关键日程表 Beta 1 2005年7月27日 1 CTP 由2005年12月20日 Build 5270 開始 每兩至三個月推出新版本 Beta 2 2006年5月23日 Build 5384 4
  • java基础知识

    java基础知识 1 常见的数据源 dbcp 半自动化操作 不能自己连接 c3p0 自动化操作 自动加载配置文件 并且自动配置设置到对象中 druid hikari 2 url pattern配置为 和 的区别 首先 可以匹配所有url 包
  • Unity 3D 做FPS游戏

    Part 1 Introduction 第一部分 介绍 This tutorial will detail how to make a simple First Person Shooter FPS It will introduce fu
  • regionprops函数用法详解

    转自 http apps hi baidu com share detail 24010679 Regionprops 用途是get the properties of region 即用来度量图像区域属性的函数 语法 STATS regi
  • 《COM原理及应用》学习笔记之第十一章

    第11章 自动化 Automation 对象 1 自动化技术 自动化技术既以前提到的OLE自动化 虽然自动化技术建立在COM基础上 但自动化要比COM应用广泛得多 一方面 自动化继承了COM的很多优点 比如语言无关 进程透明等特性 另一方面
  • RAC Failover三种方式

    1 Client Side Connect Time Failover 1 1 在用户端tnsname中配置了多个地址 用户发起连接请求时 会先尝试连接地址表中的第一个地址 如果这个连接尝试失败 则继续尝试使用第二个地址 直至连接成功或者遍
  • 如何在tomcat 7中加密server.xml的密码

    我想消化 加密 tomcat 的 server xml 密码 我在互联网上看到了一些代码 这些代码导致我在资源标签内添加工厂 正如你在下面看到的 不幸的是 我已经在工厂中添加了 Atomikos 但不允许我添加第二个工厂 您能否帮助我使用第
  • Python:BASIC 中是否有相当于中、右、左的词?

    我想做这样的事情 gt gt gt mystring foo gt gt gt print mid mystring Help 切片来救援 def left s amount return s amount def right s amou
  • 新数据框列作为另一个数据框的函数(摘要)对我不起作用

    我想创建一个新的计算列 另一列文本的摘要 为了让您重现 我创建了一个 df 作为可重现的示例 df lt data frame name replicate 1000 paste sample LETTERS 20 replace TRUE
  • 如何计算文本的真实SHA1?

    As in 我的最后一个问题 https stackoverflow com q 48327289 287948 参见那里的详细信息 我正在使用 SELECT encode digest x text bytea sha1 hex FROM

随机推荐

  • 头文件中应该写什么

    通 过上面的讨论 xff0c 我们可以了解到 xff0c 头文件的作用就是被其他的 cpp 包含进去的 它们本身并不参与编译 xff0c 但实际上 xff0c 它们的内容却在多个 cpp 文件中得到了 编译 通过 定义只能有一次 的规则 x
  • ubuntu下编译报错:对‘cv::String::deallocate()’未定义的引用

    在编译包含opencv头文件的程序时报错1 xff0c 如下 xff1a home jie cadmus ws devel lib libdeebot slam so xff1a 对 cv String allocate span clas
  • MDK软件仿真使用

    开始仿真前需要先配置环境 xff0c 如果手动创建环境不能进入仿真要考虑去看一下工程配置选项的问题 xff0c 本次仿真使用AT32F403VGT7型号 xff0c 如图 xff1a 点击开始仿真 xff0c 下面对仿真工具栏的选项进行具体
  • SK6812驱动入门

    我看数据手册一般是特性 引脚定义 外围电路 时序图以及驱动代码 特性 Top SMD内部集成高质量外控单线串行级联恒流IC xff1b 控制电 与芯片集成在SMD 3528元器件中 xff0c 构成一个完整的外控像素点 色温效果均匀且一致性
  • ESD与TVS的区别

    概念 ESD全称是Electro Static discharge 意思就是 静电释放 国际上习惯将用于静电防护的器材统称为ESD 中文名称为静电阻抗器 TVS全称是Transient Voltage Suppressor 意思是 瞬间电压
  • 开关电源三种控制模式:PWM/PFM/PSM

    1 PWM PFM PSM 三种控制模式的定义 通常来说 开关电源 xff08 DC DC xff09 有三种最常见的调制方式分别为 xff1a 脉冲宽度调制 xff08 PWM xff09 脉冲频率调制 xff08 PFM xff09 脉
  • PCB布线走直角或锐角问题研究

    首先需要说明的一点 xff0c 在正常布线的过程中还是要尽量避免布线走直角和锐角 这里只是研究深入下布线走直角或锐角会有多大的危害性 xff0c 结尾给出答案 无论是教科书还是公司的技术规范都会强调布线避免出现走直角和锐角 xff0c 不过
  • 磁珠基本原理

    概念 磁珠的全称为铁氧体磁珠滤波器 xff0c 是一种抗干扰元件 xff0c 主要功能是滤除高频噪声 xff0c 消除存在于传输线结构 xff08 电路 xff09 中的噪声 工作原理 磁珠通过阻抗吸收并以发热的形式将不需要频段的能量耗散掉
  • BUCK型DC-DC变换器

    前述 DCDC从控制手段上来说分为PWM式 谐振式以及他们的结合式 每 一种方式中从输入与输出之间是否有变压器隔离又可以分为有隔离 无隔离两类 每一类有六种拓扑结构 BUCK Boost BUCK Boost Cuk Sepic和Zeat
  • dubbo服务超时导致的异常org.apache.dubbo.remoting.TimeoutException

    1 dubbo服务超时异常提示信息如下 xff1a cause org apache dubbo remoting TimeoutException Waiting server side response timeout by scan
  • 基于TCP/IP实现串口到网络的通讯转换

    工作模式 通过串口服务器 xff0c 采集到天平的称量值发送到PC端 操作步骤 1 软件测试 测试工具 xff1a USR M0 V2 2 5 8 基础设置 xff1a 模块静态IP 设置成服务器IP xff0c HTTP服务端口 设置成4
  • 结构体的对其规则以及为什么要对其

    结构体的内存对齐规则以及为什么要对齐 内存对齐规则 span class token number 1 span 第一个成员在与结构体变量偏移量为 span class token number 0 span 的地址处 span class
  • 宏定义参数

    宏定义的参数以逗号 xff08 作为分隔符 span class token macro property span class token directive keyword include span span class token s
  • [STM32]关于环形队列的实现

    在程序中使用环形队列判断接收数据格式 xff0c 避免在中断中处理造成程序响应速度慢的问题 直接贴代码 xff1a LoopRxCommu h ifndef LOOPRXCOMMU H define LOOPRXCOMMU H includ
  • C#旅程——串口发送数据

    串口发送数据时可以一个byte一个byte的发送数据 xff0c 也可以一次性丢出 xff0c 分多次丢出的话会导致一段数据被分成多段发出 xff0c 中间的延时可能会超过2ms xff0c 与FW通讯时会出现异常 span class t
  • 【记录】一次51单片机串口乱码问题排查

    记录 一次51单片机串口乱码问题排查 项目场景问题描述原因分析解决方案结语 项目场景 在51串口收发仿真实验中使用两个单片机互相通信 xff0c 程序设定A上电1s后通过串口以16进制给B发送AA 直到B收到AA后回复BB xff0c 当A
  • IO流java基础

    二十四 IO流 24 1 File 1 1 File 类概述和构造方法 File 它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言 其封装的并不是一个真正存在的文件 仅仅是一个路径名而已 它可以是存
  • TX2上布置vins_fusion_gpu指南

    1 参考链接 如果初次安装 xff0c 新的TX2环境 xff0c 请参考文档 https github com arjunskumar vins fusion gpu tx2 nano 2 问题记录 1 xff0c 自己的环境情况 我的环
  • Ubuntu下安装cmake

    Ubuntu下安装cmake 今天因为项目的原因需要将cmake升级一下 xff0c 原来我是按照链接没有卸载旧版本 xff0c 直接升级 但是出现一些问题 xff0c 然后我全部卸载后 xff0c 重新安装 以下就是我的安装步骤 第一步
  • AUTH:basic认证和digest认证

    Http authentication BASIC In the context of an HTTP transaction basic access authentication is a method for a web browse