欢迎光临
我们一直在努力

python生成dll,python生成矩阵

一、介绍

如果在Python中需要对用户输入的密码或者其他内容进行加密,首选的方法是生成hash值。
在Python中可以利用二个模块来进行:
– crypt
– hashlib

二、crypt模块

(一)crypt的主要方法和常量

名称类型描述crypt(…)方法对指定内容进行hash加密methods(…)方法返回可以用到的加密算法mksalt(…)方法根据加密算法生成saltmethods(…)方法返回可用加密算法的列表METHOD_MD5常量md5加密算法METHOD_SHA256常量sha256加密算法METHOD_SHA512常量sha512加密算法

(二)使用说明与示例

使用crypt.crypt(…)进行hash加密的时候,需要提供二个参数:
– 加密内容
– salt

如果不特别指定salt,系统就会调用crypt.mksalt(…)生成一个salt

如果想要以特定的加密算法生成salt就应该使用下面的命令:

>>>salt = crypt.mksalt(crypt.METHOD_SHA512)>>> salt’$6$s8Q3eNP6urKZb3AK’

然后再进行数据加密:

>>> hash = crypt.crypt(“helloworld”,salt)>>> 美国高防vps hash’$6$s8Q3eNP6urKZb3AK$L0O5cqHRU.1f170bV2KrjF3LkLL54So442TqUIsk.wYtCtOSD4kldgk./fj6W6Y.EzrbNm00grA4yPPhXGya2ie1′ 三、hashlib模块

(一)hashlib的主要方法和常量

名称描述md5(…)利用md5算法加密sha1(…)利用sha1算法加密sha224(…)利用sha224算法加密sha256(…)利用sha256算法加密sha384(…)利用sha384算法加密sha512(…)利用sha512算法加密

**(二)Hash对象特有的方法

如果你利用hashlib生成了一个Hash对象,那么这个Hash对象会包含如下方法:

名称描述update(arg)可以重复利用指定了特殊加密算法的Hash对象,对arg进行加密digest(…)以字符形式返回加密内容hexdigest(…)以16进制形式返回加密内容copy(…)为了达到重复利用Hash对象的目的,而克隆Hash对象

(三)示例

1、直接使用hashlib方法

from hashlib import md5from hashlib import sha1from hashlib import sha224from hashlib import sha384from hashlib import sha512import hashlibdef hashForString(method,srcbyte): srcbyte = srcbyte.encode(‘gb2312’) testnew = hashlib.new(method,data=srcbyte).hexdigest() print(testnew) if method == ‘md5’: m = md5() #生成hash对象后,用update方法对字符串进行md5加密的更新处理 m.update(srcbyte) srcbyte = m.hexdigest() elif method == ‘sha1’: s = sha1() s.update(srcbyte) srcbyte = s.hexdigest() elif method == ‘sha224’: s = sha224() s.update(srcbyte) srcbyte = s.hexdigest() elif method == ‘sha384’: s = sha384() s.update(srcbyte) srcbyte = s.hexdigest() elif method == ‘sha1’: s = sha512() s.update(srcbyte) srcbyte = s.hexdigest() return srcbyteprint(hashForString(‘md5′,’math’))

2、直接使用Hash对象中的方法

>>> m = hashlib.md5()>>> m<md5 HASH object @ 0x7f99432c5468>>>> m.update(“Nobody inspects”)>>> m.digest()’>\xf7)\xcc\xf0\xccV\x07\x9c\xa5F\xd5\x80\x83\xdc\x12′>>> m.update(” the spammish repetition”)>>> m.digest()’\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9′>>> m.hexdigest()’bb649c83dd1ea5c9d9dec9a18df0ffe9′ 23518636

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。