Home  >  Article  >  Backend Development  >  python pycurl method to verify basic and digest authentication

python pycurl method to verify basic and digest authentication

不言
不言Original
2018-05-02 13:48:112148browse

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

Open mod_auth_basic

LoadModule auth_basic_module modules/mod_auth_basic.so

Configure to a specific directory

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

Restart Apache

Configure Digest authentication under Apache

Generate Digest password file

htdigest -c passwd.digest "Digest Encrypt" test

Turn on mod_auth_digest

LoadModule auth_digest_module modules/mod_auth_digest.so

Configure to a specific directory

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

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()

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()


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!

Statement:
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