5.1 hashlib.py
来源:互联网 发布:浪潮软件股票走势 编辑:程序博客网 时间:2024/06/05 15:40
5.1 hashlib.py#!/usr/bin/python# -*- encoding: utf-8import hashlibif __name__ == "__main__": md5 = hashlib.md5() md5.update('This is a sentence.'.encode(encoding='utf-8')) md5.update('This is a second sentence.'.encode()) print (u'不出意外,这个将是“乱码”:', md5.digest()) print (u'MD5:', md5.hexdigest()) md5 = hashlib.md5() md5.update('This is a sentence.This is a second sentence.') print (u'MD5:', md5.hexdigest()) print (md5.digest_size, md5.block_size) print ('------------------') sha1 = hashlib.sha1() sha1.update('This is a sentence.') sha1.update('This is a second sentence.') print (u'不出意外,这个将是“乱码”:', sha1.digest()) print (u'SHA1:', sha1.hexdigest()) sha1 = hashlib.sha1() sha1.update('This is a sentence.This is a second sentence.') print (u'SHA1:', sha1.hexdigest()) print (sha1.digest_size, sha1.block_size) print ('=====================') md5 = hashlib.new('md5', 'This is a sentence.This is a second sentence.') print (md5.hexdigest()) sha1 = hashlib.new('sha1', 'This is a sentence.This is a second sentence.') print (sha1.hexdigest()) print (hashlib.algorithms)
Q1:
md5.update('This is a sentence.')TypeError: Unicode-objects must be encoded before hashing
As1:
注意update()必须指定要加密的字符串的字符编码
解决办法:
md5.update('This is a sentence.'.encode(encoding='utf-8')) md5.update('This is a second sentence.'.encode())
相关知识 str.encode()
def encode(self, encoding: str = 'utf-8', errors: str = 'strict') Inferred type: (self: str, encoding: str, errors: str) -> bytes
参数:encoding = 'utf-8'
表示以utf-8编码,即将str
对象以你选定的编码方式进行编码,errors=
默认为strict
,即会抛出编码异常的错误UnicodeEncodeError
,可用ignore
忽略
md5.update()sha1.update()hashlib.new()
都需要指定要加密的字符串的字符编码
hashlib
是一个集成hash
加密或者md5
加密以及sha1(), sha224(), sha256(), sha384(), sha512(), blake2b(), and blake2s(). md5()
的库
主要功能是将字符串进行加密,或者对信息进行摘要。 MD5
主要对于任意长度的信息,经过MD5
算法都能得到一段长度为128bit的摘要
阅读全文
0 0
- 5.1 hashlib.py
- hashlib
- hashlib
- hashlib
- hashlib
- hashlib
- hashlib
- python hashlib
- hashlib简介
- hashlib模块
- hashlib模块
- py
- py
- py
- py
- py
- py
- py
- cent os 6.3部分命令
- c++二维指针求每行每列次大值
- 作业
- ajax&promise
- JavaSE_day1-3(笔记)
- 5.1 hashlib.py
- eclipse maven install 没反应
- scala隐式转换
- JS判断客户端是手机还是PC
- 文本摘要学习
- coreseek 不关闭进程更新索引
- JavaScript switch语句与if语句
- linux系统安装python librtmp包
- js原型和原型链