当前位置: 首页 > 编程笔记 >

python pycurl验证basic和digest认证的方法

郑卜鹰
2023-03-14
本文向大家介绍python pycurl验证basic和digest认证的方法,包括了python pycurl验证basic和digest认证的方法的使用技巧和注意事项,需要的朋友参考一下

简介

pycurl类似于Python的urllib,但是pycurl是对libcurl的封装,速度更快。

本文使用的是pycurl 7.43.0.1版本。

Apache下配置Basic认证

生成basic密码文件

htpasswd -bc passwd.basic test 123456

开启mod_auth_basic

LoadModule auth_basic_module modules/mod_auth_basic.so

配置到具体目录

<Directory "D:/test/basic">
  AuthName "Basic Auth Dir"
  AuthType Basic
  AuthUserFile conf/passwd.basic
  require valid-user
</Directory>

重启Apache

Apache下配置Digest认证

生成Digest密码文件

htdigest -c passwd.digest "Digest Encrypt" test

开启mod_auth_digest

LoadModule auth_digest_module modules/mod_auth_digest.so

配置到具体目录

<Directory "D:/test/digest">
  AuthType Digest
  AuthName "Digest Encrypt" # 要与密码的域一致
  AuthDigestProvider file
  AuthUserFile conf/passwd.digest
  require valid-user
</Directory>

重启Apache

验证Basic认证

# -*- coding: utf-8 -*-
import pycurl
try:
  from io import BytesIO
except ImportError:
  from StringIO import StringIO as BytesIO
buffer = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, 'http://test/basic/')
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.HTTPAUTH, c.HTTPAUTH_BASIC)
c.setopt(c.USERNAME, 'test')
c.setopt(c.PASSWORD, '123456')
c.perform()
print('Status: %d' % c.getinfo(c.RESPONSE_CODE))
print(buffer.getvalue())
c.close()

验证Digest认证

# -*- coding: utf-8 -*-
import pycurl
try:
  from io import BytesIO
except ImportError:
  from StringIO import StringIO as BytesIO
buffer = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, 'http://test/digest/')
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.HTTPAUTH, c.HTTPAUTH_DIGEST)
c.setopt(c.USERNAME, 'test')
c.setopt(c.PASSWORD, '123456')
c.perform()
print('Status: %d' % c.getinfo(c.RESPONSE_CODE))
print(buffer.getvalue())
c.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 我需要帮助解决一个小问题。我编程时间不长,不知道如何解决这个问题。我有一个学校的小项目,我不明白为什么在验证输入时会出现这个错误。 例如,我正在通过创建一个函数来根据输入的值返回真值或假值来检查输入是否有效以及在最小和最大范围之间。我使用函数的原因是因为我正在进行多次类似的检查,我认为与其再次重写它,这是执行此任务的最佳方式。 这是我的验证,下面是验证这一点的简单函数。 出于某种原因,尽管事实如此

  • 本文向大家介绍laravel unique验证、确认密码confirmed验证以及密码修改验证的方法,包括了laravel unique验证、确认密码confirmed验证以及密码修改验证的方法的使用技巧和注意事项,需要的朋友参考一下 confirmed 验证字段必须有一个匹配字段 foo_confirmation,例如,如果验证字段是 password,必须输入一个与之匹配的 password_

  • 本文向大家介绍验证和确认之间的差异。,包括了验证和确认之间的差异。的使用技巧和注意事项,需要的朋友参考一下 众所周知,“验证”和“验证”这两个词的字面意思是:“验证”是验证某事物是否正确的过程,而“验证”是验证某事物的过程,在该过程中,用户使用一些输入和验证输出是否符合预期。在软件测试中,验证和验证都是V模型的一部分,在V模型中,基于需求规格说明文件开始开发和测试活动。 换句话说,我们可以说验证是

  • 本文向大家介绍CKEditor无法验证的解决方案(js验证+jQuery Validate验证),包括了CKEditor无法验证的解决方案(js验证+jQuery Validate验证)的使用技巧和注意事项,需要的朋友参考一下 最近项目的前端使用了jQuery,表单的前端验证用的是jQuery Validate,用起来很简单方便,一直都很满意的。 前段时间,根据需求为表单中的 textarea 类

  • 本文向大家介绍浅谈HTTP使用BASIC认证的原理及实现方法,包括了浅谈HTTP使用BASIC认证的原理及实现方法的使用技巧和注意事项,需要的朋友参考一下 一.BASIC认证概述 在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份证的方法,当一个客户端向HTTP服务 器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本认证过程对

  • 我有以下验证组: 默认情况下,如果没有指定组,那么是否应该验证使用扩展的组注释的所有字段?

  • 我在验证文本框中的用户输入时遇到了一些问题,我还没有找到解决方案。 基本上,该程序是一个BMI计算器,当用户选择“计算”按钮时,我正在尝试验证用户输入的“性别”、“身高”和“体重”。以下是我到目前为止的代码: 我需要验证这些输入的原因是,例如,如果用户为“高度”输入输入一个字符串或什么都不输入,计算将无法工作,因此程序将中断。我曾想过使用某种形式的布尔变量和循环来解决这个问题,但我对如何做到这一点

  • 到 RADOS 网关的 Requests 请求可能已经经过验证也可能没有经 过验证。RGW 假设所有未经验证的请求都是由匿名用户发送的。RGW 支持预置的 ACLs。 认证 对请求进行身份验证需要在它发送到 RGW 服务器之前就包含一个 access 密钥和基于散列消息验证码(HMAC)。RGW 使用兼容 S3 的身份验证方法。 HTTP/1.1 PUT /buckets/bucket/objec