python pycurl method to verify basic and digest authentication

不言
Release: 2018-05-02 13:48:11
Original
2194 people have browsed it

This article mainly introduces the method of python pycurl to verify basic and digest authentication. Now I will share it with you and give you a reference. Let’s take a look together

Introduction

pycurl is similar to Python’s urllib, but pycurl is an encapsulation of libcurl and is faster.

This article uses pycurl version 7.43.0.1.

Configure Basic authentication under Apache

Generate basic password file

htpasswd -bc passwd.basic test 123456
Copy after login

Open mod_auth_basic

LoadModule auth_basic_module modules/mod_auth_basic.so
Copy after login

Configure to a specific directory

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

Restart Apache

Configure Digest authentication under Apache

Generate Digest password file

htdigest -c passwd.digest "Digest Encrypt" test
Copy after login

Turn on mod_auth_digest

LoadModule auth_digest_module modules/mod_auth_digest.so
Copy after login

Configure to a specific directory

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

Restart Apache

Verify Basic Authentication

# -*- 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, &#39;http://test/basic/&#39;)
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.HTTPAUTH, c.HTTPAUTH_BASIC)
c.setopt(c.USERNAME, &#39;test&#39;)
c.setopt(c.PASSWORD, &#39;123456&#39;)
c.perform()
print(&#39;Status: %d&#39; % c.getinfo(c.RESPONSE_CODE))
print(buffer.getvalue())
c.close()
Copy after login

Verify Digest Authentication

# -*- 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, &#39;http://test/digest/&#39;)
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.HTTPAUTH, c.HTTPAUTH_DIGEST)
c.setopt(c.USERNAME, &#39;test&#39;)
c.setopt(c.PASSWORD, &#39;123456&#39;)
c.perform()
print(&#39;Status: %d&#39; % c.getinfo(c.RESPONSE_CODE))
print(buffer.getvalue())
c.close()
Copy after login


The above is the detailed content of python pycurl method to verify basic and digest authentication. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template