网站大量收购独家精品文档,联系QQ:2885784924

python课件-第18章 密码学编程.ppt

python课件-第18章 密码学编程.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第18章 密码学编程 第18章 密码学编程 信息加密和信息隐藏是实现信息安全与保密的主要手段。其中信息隐藏或隐写术具有悠久的历史,常用于版权保护和信息保密等相关领域,近几年来与之有关的研究呈上升趋势。作为传统的信息安全技术,加密和解密算法则一直都是业内研究的重点。 第18章 密码学编程 Python标准库hashlib实现了SHA1、SHA224、SHA256、SHA384、SHA512以及MD5等多个安全哈希算法。 标准库zlib提供了adler32和crc32算法的实现,标准库hmac实现了HMAC算法。 第18章 密码学编程 扩展库pycrypto、pycryptodome和cryptography提供了SHA系列算法和RIPEMD160等多个安全哈希算法,以及DES、AES、RSA、DSA、ElGamal等多个加密算法和数字签名算法的实现。 18.1 安全哈希算法 安全哈希算法也称报文摘要算法,对任意长度的消息可以计算得到固定长度的唯一指纹。理论上,即使是内容非常相似的消息也不会得到相同的指纹。 安全哈希算法是不可逆的,无法从指纹还原得到原始消息,属于单向变换算法。 安全哈希算法常用于数字签名领域,很多管理信息系统把用户密码的哈希值存储到数据库中而不直接存储密码。 文件完整性检查也经常用到MD5或其他安全哈希算法。 18.1 安全哈希算法 使用Python标准库hashlib计算字符串的安全哈希值。 import hashlib hashlib.md5(abcdefg.encode()).hexdigest() #使用MD5算法 hashlib.sha512(abcdefg.encode()).hexdigest() #使用SHA512算法 hashlib.sha256(abcdefg.encode()).hexdigest() #使用SHA256算法 18.1 安全哈希算法 Python扩展库pycrypto和pycryptodome也提供了MD2、MD4、MD5、HMAC、RIPEMD、SHA、SHA224、SHA256、SHA384、SHA512等多个安全哈希算法的实现。 from Crypto.Hash import SHA256 h = SHA256.SHA256Hash(abcdefg.encode()) h.hexdigest() 暴力破解MD5值 from hashlib import md5 from string import ascii_letters, digits from itertools import permutations from time import time all_letters = ascii_letters + digits + .,; #候选字符集 18.1 安全哈希算法 def decrypt_md5(md5_value): if len(md5_value) != 32: #破解32位MD5值 print(error) return md5_value = md5_value.lower() #转换为小写MD5值 for k in range(5,10): #预期密码长度 for item in permutations(all_letters, k): #暴力测试 item = .join(item) print(., end=) #显示进度 if md5(item.encode()).hexdigest() == md5_value: return item 18.1 安全哈希算法 md5_value = e7d057704ea5206d8cb61280741238f5 start = time() result = decrypt_md5(md5_value) if result: print(\nSuccess: +md5_value+==+result) print(Time used:, time()-start) 18.1 安全哈希算法 18.2 对称密钥密码算法DES和AES 扩展库pycrypto中DES算法的用法: from Crypto.Cipher import DES des_encrypt_decrypt = DES.new(ShanDong, DES.MODE

您可能关注的文档

文档评论(0)

k12教育文档 + 关注
实名认证
服务提供商

本人专注于k12教育,英语四级考试培训,本人是大学本科计算机专业毕业生,专注软件工程计算机专业,也可承接计算机专业的C语言程序设计,Java开发,Python程序开发。

1亿VIP精品文档

相关文档