Python(廖)之常用内置模块

一, datetime

1. datetime是Python处理日期和时间的标准库

2. from datetime import datetime

    datetime是模块,该模块还包含一个datetime类。

3.常用操作:

   >>> from datetime import datetime
>>> #获取当前日期和时间
>>> now=datetime.now()
>>> print(now)
2019-03-12 08:48:56.186838
>>> print(type(now))
<class 'datetime.datetime'>
>>> #通过参数指定某个日期和时间
>>> dt=datetime(2015,4,19,12,20,12)
>>> print(dt)
2015-04-19 12:20:12
>>> #将datetime类型转换为timestamp
>>> dt.timestamp()
1429417212.0
>>> #将timestamp类型转换为datetime
>>> ts=dt.timestamp()
>>> print(datetime.fromtimestamp(ts))
2015-04-19 12:20:12
>>> #将timestamp转换为UTC标准时区时间
>>> print(datetime.utcfromtimestamp(ts))
2015-04-19 04:20:12
>>> #将字符串处理为datetiem类型

>>> cday=datetime.strptime('2015-6-1 18:19:59','%Y-%m-%d %H:%M:%S')
>>> print(cday)
2015-06-01 18:19:59
>>> #将datetime 转换为 str
>>> now=datetime.now()
>>> print(now.strftime('%a,%b %d %H:%M'))
Tue,Mar 12 09:05
>>> #对日期时间进行加减
>>> from datetime import datetime,timedelta
>>> now+timedelta(hours=10)
datetime.datetime(2019, 3, 12, 19, 5, 12, 894703)
>>> now-timedelta(days=1)
datetime.datetime(2019, 3, 11, 9, 5, 12, 894703)
>>> #本地时间转换为UTC时间
>>> #datetime类型有个时区属性tzinfo
>>> from datetime import datetime,timedelta,timezone
>>> tz_utc_8=timezone(timedelta(hours=8))
>>> now
datetime.datetime(2019, 3, 12, 9, 5, 12, 894703)
>>> dt=now.replace(tzinfo=tz_utc_8)
>>> dt
datetime.datetime(2019, 3, 12, 9, 5, 12, 894703, tzinfo=datetime.timezone(datetime.timedelta(0, 28800)))
>>> #时区转换
>>> #一般做法是先拿到当前的UTC时间,再转换为任意时区的时间
>>> utc_dt=datetime.utcnow().replace(tzinfo=timezone.utc)
>>> print(utc_dt)
2019-03-12 01:13:31.002193+00:00
>>> #转换时区为北京时间
>>> bj_dt=utc_dt.astimezone(timezone(timedelta(hours=8)))
>>> print(bj_dt)
2019-03-12 09:13:31.002193+08:00
>>> 
 

二, hmac

1. 使用哈希算法对数据进行加密,通过校验数据的哈希值,可以验证数据是否有效。

2. 但黑客有可能通过彩虹表根据哈希值反推原始口令,所以我们对哈希值再设置口令的方式,进行加密增强。

   好处:

(1)增加一个salt可以使得相同的输入也能得到不同的哈希。

(2)加salt的哈希就是:计算一段message的哈希时,根据不同的口令计算出不同的哈希。要验证哈希值,必须同时提供正确的口令。

    其中带salt的算法的标志性算法就是Hmac算法: Keyed-Hashing for Message Authentication。即通过一个标准算法,在计算哈希的过程中,把key混入计算过程中。

   Hmac算法针对所有哈希算法都通用。

3.  示例代码:

    准备原始消息message,随机Key,哈希算法

    >>> import hmac
>>> message=b'Hello,world!'
>>> key=b'secret'
>>> h=hmac.new(key,message,digestmod='MD5')
>>> h.hexdigest()
'21db988f124ebc9fade5492afb9df52d'
>>> 

hmac输出的长度和原始哈希算法的长度一致。需要注意传入的key和message都是bytes类型,str类型需要首先编码为bytes

 

三.  itertools

该python的内建模块itertools提供了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值