python充值模块_python 模块部分补充知识
发布日期:2021-10-31 12:51:55 浏览次数:4 分类:技术文章

本文共 5461 字,大约阅读时间需要 18 分钟。

一、hashlib

hashlib 模块主要用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法。

实例代码:

importhashlib######### md5 ########

hash =hashlib.md5()#help(hash.update)

hash.update(bytes('admin', encoding='utf-8'))print(hash.hexdigest())print(hash.digest())######## sha1 ########

hash=hashlib.sha1()

hash.update(bytes('admin', encoding='utf-8'))print(hash.hexdigest())######### sha256 ########

hash=hashlib.sha256()

hash.update(bytes('admin', encoding='utf-8'))print(hash.hexdigest())######### sha384 ########

hash=hashlib.sha384()

hash.update(bytes('admin', encoding='utf-8'))print(hash.hexdigest())######### sha512 ########

hash=hashlib.sha512()

hash.update(bytes('admin', encoding='utf-8'))print(hash.hexdigest())

以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。

importhashlib######### md5 ########

hash= hashlib.md5(bytes('898oaFs09f',encoding="utf-8"))

hash.update(bytes('admin',encoding="utf-8"))print(hash.hexdigest())

python内置还有一个 hmac 模块,它内部对我们创建 key 和 内容 进行进一步的处理然后再加密。

importhmac

h= hmac.new(bytes('898oaFs09f',encoding="utf-8"))

h.update(bytes('admin',encoding="utf-8"))print(h.hexdigest())

二、requests

Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。

importurllib.request

f=urllib.request.urlopen('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')

result= f.read().decode('utf-8')

importurllib.request

req= urllib.request.Request('http://www.example.com/')

req.add_header('Referer', 'http://www.python.org/')

r=urllib.request.urlopen(req)

result= f.read().decode('utf-8')

Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作。

使用:

1 #1、无参数实例

2

3 importrequests4

5 ret = requests.get('https://github.com/timeline.json')6

7 print(ret.url)8 print(ret.text)9

10

11

12 #2、有参数实例

13

14 importrequests15

16 payload = {'key1': 'value1', 'key2': 'value2'}17 ret = requests.get("http://httpbin.org/get", params=payload)18

19 print(ret.url)20 print(ret.text)21

22 GET请求

GET请求

1 #1、基本POST实例

2

3 importrequests4

5 payload = {'key1': 'value1', 'key2': 'value2'}6 ret = requests.post("http://httpbin.org/post", data=payload)7

8 print(ret.text)9

10

11 #2、发送请求头和数据实例

12

13 importrequests14 importjson15

16 url = 'https://api.github.com/some/endpoint'

17 payload = {'some': 'data'}18 headers = {'content-type': 'application/json'}19

20 ret = requests.post(url, data=json.dumps(payload), headers=headers)21

22 print(ret.text)23 print(ret.cookies)24

25 POST请求

POST请求

1 requests.get(url, params=None, **kwargs)2 requests.post(url, data=None, json=None, **kwargs)3 requests.put(url, data=None, **kwargs)4 requests.head(url, **kwargs)5 requests.delete(url, **kwargs)6 requests.patch(url, data=None, **kwargs)7 requests.options(url, **kwargs)8

9 #以上方法均是在此方法的基础上构建

10 requests.request(method, url, **kwargs)11

12 其他请求

其他请求

实例演示:

1 实例:查看火车停靠信息2

3 importurllib4 importrequests5 from xml.etree importElementTree as ET6

7 #使用内置模块urllib发送HTTP请求,或者XML格式内容

8 """

9 f = urllib.request.urlopen('http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=G666&UserID=')10 result = f.read().decode('utf-8')11 """

12

13 #使用第三方模块requests发送HTTP请求,或者XML格式内容

14 r = requests.get('http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=G666&UserID=')15 result =r.text16

17 #解析XML格式内容

18 root =ET.XML(result)19 for node in root.iter('TrainDetailInfo'):20 print(node.find('TrainStation').text,node.find('StartTime').text,node.tag,node.attrib)

实例:查看火车停靠信息

三、paramiko

paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。

1、下载安装:

pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto

pip3 install pycrypto

pip3 install paramiko

2、模块使用:

1 #!/usr/bin/env python

2 #coding:utf-8

3

4 importparamiko5

6 ssh =paramiko.SSHClient()7 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())8 ssh.connect('192.168.1.108', 22, 'alex', '123')9 stdin, stdout, stderr = ssh.exec_command('df')10 printstdout.read()11 ssh.close();12

13 执行命令 - 用户名+密码

importparamiko

private_key_path= '/home/auto/.ssh/id_rsa'key=paramiko.RSAKey.from_private_key_file(private_key_path)

ssh=paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('主机名', 端口, '用户名', key)

stdin, stdout, stderr= ssh.exec_command('df')printstdout.read()

ssh.close()

执行命令- 密钥

importos,sysimportparamiko

t= paramiko.Transport(('182.92.219.86',22))

t.connect(username='wupeiqi',password='123')

sftp=paramiko.SFTPClient.from_transport(t)

sftp.put('/tmp/test.py','/tmp/test.py')

t.close()importos,sysimportparamiko

t= paramiko.Transport(('182.92.219.86',22))

t.connect(username='wupeiqi',password='123')

sftp=paramiko.SFTPClient.from_transport(t)

sftp.get('/tmp/test.py','/tmp/test2.py')

t.close()

上传或下载文件- 用户名+密码

importparamiko

pravie_key_path= '/home/auto/.ssh/id_rsa'key=paramiko.RSAKey.from_private_key_file(pravie_key_path)

t= paramiko.Transport(('182.92.219.86',22))

t.connect(username='wupeiqi',pkey=key)

sftp=paramiko.SFTPClient.from_transport(t)

sftp.put('/tmp/test3.py','/tmp/test3.py')

t.close()importparamiko

pravie_key_path= '/home/auto/.ssh/id_rsa'key=paramiko.RSAKey.from_private_key_file(pravie_key_path)

t= paramiko.Transport(('182.92.219.86',22))

t.connect(username='wupeiqi',pkey=key)

sftp=paramiko.SFTPClient.from_transport(t)

sftp.get('/tmp/test3.py','/tmp/test4.py')

t.close()

上传或下载文件- 密钥

转载地址:https://blog.csdn.net/weixin_39965881/article/details/111882019 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python 数据分析图_python数据分析常用图大集合
下一篇:xp激活30天到期_我的XP系统还剩30天激活怎么办

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月02日 06时30分39秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章