iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中hash加密方法怎么使用
  • 655
分享到

Python中hash加密方法怎么使用

2023-06-28 23:06:04 655人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python中hash加密方法怎么使用”,在日常操作中,相信很多人在Python中hash加密方法怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中hash加密方法怎么使用

这篇文章主要介绍“python中hash加密方法怎么使用”,在日常操作中,相信很多人在Python中hash加密方法怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中hash加密方法怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    简介

    概念

    散列算法(Hash AlGorithm),又称哈希算法,杂凑算法,是一种从任意文件中创造小的数字「指纹」的方法。与指纹一样,散列算法就是一种以较短的信息来保证文件唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律。因此,当原有文件发生改变时,其标志值也会发生改变,从而告诉文件使用者当前的文件已经不是你所需求的文件

    Hash简单点讲就是把任意一段数据经过某种算法生成一段唯一的固定长度的数据

    也可以把哈希值当做是文件指纹,因为它是文件唯一性的标志,与每一个字节都有关,当文件发生改变是,指纹值也会改变

    1. 如果把hash算法比喻为一座工厂

    2. 那传给hash算法的内容就是原材料

    3. 生成的hash值就是生产出的产品

    特点

    • 正向快速:给定明文和 Hash 算法,在有限时间和有限资源内能计算得到 Hash 值

    只要传入的内容一样,得到的hash值必然一样

    • 逆向困难:给定 Hash 值,在有限时间内很难逆推出明文

    • 输入敏感:原始输入信息发生任何变化,新的 Hash 值都应该出现很大变化

    • 冲突避免:很难找到两段内容不同的明文,使得它们的 Hash 值一致

    • 长度固定:只要我们使用是hash算法固定,无论传入的内容有多大,得到的hash值的长度是固定

    • 信息摘要:hash只是信息的摘要,信息指纹,是用来做数据识别的

    hash有哪些

    常见 Hash 算法有 MD5 和 SHA 系列,目前 MD5 和 SHA1 已经被破解,一般推荐至少使用 SHA2-256 算法

    哈希算法输出长度(bit)输出长度(字节)
    MD5128 bit16 bytes
    RipeMD160160 bits20 bytes
    SHA-1160 bits20 bytes
    SHA-256256 bits32 bytes
    SHA-512512 bits64 bytes

    算法碰撞

    稍微想一下就可以发现,既然输入数据长度不固定,而输出的哈希值却是固定长度的,这意味着哈希值是一个有限集合,而输入数据则可以是无穷多个,那么建立一对一关系明显是不现实的。所以“碰撞”是必然会发生的,所以一个成熟的哈希算法会有较好的抗冲突性,同时在实现哈希表的结构时也要考虑到哈希冲突的问题

    • 比如“666”经过 Hash 后是“fae0b27c451c728867a567e8c1bb4e53”,相同 Hash 算法得到的值是一样的。比如 WiFi 密码如果是 8 位纯数字的话,顶多就是 99999999 种可能性,破解这个密码需要做的就是提前生成好 0 到 1 亿数字的 Hash 值,然后做 1 亿次布尔运算(就是 Bool 值判断,0 或者 1),而现在普通 I5 四核 CPU 每秒能到达 200 亿次浮点数计算,做 1 亿次布尔运算也就是秒级别的时间就破解了

    • 8位大小写字母、数字、特殊符号组成的密码,若按照MD5加密,则hash值大概10000千亿,i9算力每秒1千亿。也需要至少24h。这只是极端情况下,如果加上加密算法不确定(比如3),请求时间(比如3),查询时间(比如3),这就已经需要半年左右,倘若再加上错误等待时间(比如输入5次错误等待24小时),那就已经需要50年。。。

    当然,如果有三万台电脑同时破解,也还是一天 -_-|||。
    不过道高一尺,魔高一丈。谁又会傻乎乎的一个站着打一个等着挨。都是相对的

    所以密码尽量不要用纯数字,因为根本没有任何安全

    加盐防碰撞

    对数字内容进行 Hash 运算,获取唯一的摘要值来指代原始完整的数字内容,利用 Hash 函数的抗碰撞性来确保内容未被篡改

    常用于用户名和密码来确保用户信息安全,为了防止攻击会采用加盐的方法,就是原来的明文加上一个随机数之后的 Hash 值,Hash 值和盐会保存在两个地方,只要不是同时泄漏就很难被破解

    加密

    如果在Python中需要对用户输入的密码或者其他内容进行加密,首选的方法是生成hash值

    在Python中可以利用二个模块来进行:

    • crypth

    • ashlib

    hashlib

    主要方法

    使用:hashlib.md5()

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

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

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

    直接使用hashlib方法

    import hashlib hashlib.sha224("Nobody inspects the spammish repetition".encode("utf-8"))  # 加密hashlib.sha224("Nobody inspects the spammish repetition".encode("utf-8")).hexdigest()  # 返回加密内容

    直接使用Hash对象中的方法

    import hashlib # 造出工厂m = hashlib.md5()# 放入原料m.update("Nobody inspects".encode('utf-8'))# 产出hash值m.digest() m.update("the spammish repetition".encode("utf-8"))m.digest()m.hexdigest()
    加盐
    import hashlib # 造出工厂m = hashlib.md5("this is salt".encode("utf-8"))# 放入原料m.update("Nobody inspects".encode('utf-8'))# 产出hash值m.digest() m.update("the spammish repetition".encode("utf-8"))m.digest()m.hexdigest()

    crypt

    主要方法

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

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

    • 加密内容

    • salt

    import crypt salt = crypt.mksalt(crypt.METHOD_SHA512)hash = crypt.crypt("helloworld",salt)

    应用

    密码加密

    m=hashlib.md5() m.update('key'.encode('utf-8'))      #添加个其他元素,提升密码复杂度,不是加盐m.update(passWord.encode('utf-8'))print(m.hexdigest())

    应用一致性校验

    m = hashlib.md5()with open(r'E:\01.mp4','rb') as f:    for line in f:          m.update(line)        print(m.hexdigest)

    到此,关于“Python中hash加密方法怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: Python中hash加密方法怎么使用

    本文链接: https://www.lsjlt.com/news/321182.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Python中hash加密方法怎么使用
      这篇文章主要介绍“Python中hash加密方法怎么使用”,在日常操作中,相信很多人在Python中hash加密方法怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中hash加密方法怎么使用...
      99+
      2023-06-28
    • Python中hash加密简介及使用方法
      目录简介概念特点hash有哪些算法碰撞加盐防碰撞加密hashlib主要方法特有方法使用方法加盐crypt使用说明应用密码加密应用一致性校验简介 概念 散列算法(Hash Algori...
      99+
      2024-04-02
    • python加密解密算法怎么使用
      Python提供了多种加密解密算法的库,比如`hashlib`、`hmac`、`base64`、`cryptography`等。下面...
      99+
      2023-09-17
      python
    • 怎么使用python中的pycrypto算法加密
      今天小编给大家分享一下怎么使用python中的pycrypto算法加密的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、安装...
      99+
      2023-06-30
    • Go中使用加密算法的方法
      目录哈希算法加密模式对称加密⾮对称加密椭圆曲线加密算法ECC数字签名字符编码/解码巨人的肩膀哈希算法  md5 128bit,16字节 如:md5 (“he...
      99+
      2024-04-02
    • Python中怎么加密密码
      今天就跟大家聊聊有关Python中怎么加密密码,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如何在Python中加密密码加密密码会将密码编码为随机字符序列。使用base64.b64e...
      99+
      2023-06-16
    • javascript中能够使用什么方法进行加密
      小编给大家分享一下javascript中能够使用什么方法进行加密,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java有哪些集合类Java中的集合主要分为四类:1...
      99+
      2023-06-14
    • 怎么使用python实现md5加密
      本文小编为大家详细介绍“怎么使用python实现md5加密”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用python实现md5加密”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。python实现MD5加密...
      99+
      2023-07-06
    • Redis中怎么使用hash类型
      Redis中怎么使用hash类型,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 hash类型特别适...
      99+
      2024-04-02
    • 怎么使用PostgreSQL中Hash索引
      本篇内容介绍了“怎么使用PostgreSQL中Hash索引”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!逻...
      99+
      2024-04-02
    • PHP怎么使用OpenSSL加密中的非对称加密
      这篇文章主要介绍了PHP怎么使用OpenSSL加密中的非对称加密,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP的OpenSSL加密扩展学习:非对称加密生成私钥通过之前的...
      99+
      2023-06-15
    • PHP7中使用“DES-EDE-CBC”加解密的方法
      这篇文章主要介绍PHP7中使用“DES-EDE-CBC”加解密的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 条件约束之前PHP5上常使用的mcrypt库在PHP7.1+上已经被移除,故我们采用openss...
      99+
      2023-06-15
    • win7u盘加密功能使用方法
      小巧的U盘是很多朋友的首选移动存储设备,但是正因为体积小巧,U盘也非常容易丢失,里面存放的重要数据和信息也很可能因此被泄露。使用加密软件虽然可以起到保护作用,却比较麻烦。这个问题也曾经困扰了小编好长时间,开始使用Wind...
      99+
      2023-05-26
      win7u盘加密 win7给u盘加密 使用 功能 方法
    • php中的hash方法是什么
      今天给大家介绍一下php中的hash方法是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。php中的hash方法:hash_algos()、hash_cop...
      99+
      2023-06-28
    • php混淆加密算法怎么使用
      PHP混淆加密算法可用于保护源代码的安全性,防止代码被解析和修改。以下是一个使用PHP混淆加密算法的示例:1. 在开始之前,你需要安...
      99+
      2023-09-14
      php
    • 使用python加密主机文件几种方法实现
      数据加密是一种保护数据安全的技术,通过对数据进行编码,使得未经授权的用户无法读取或改动数据。 加密是通过使用加密算法和密钥实现的。加密算法是一种特定的算法,可以将数据编码成不可读的形...
      99+
      2023-02-09
      python加密主机文件 python加密文件
    • 用Python模拟网站中对JavaScript加密的方法
      这篇文章主要介绍“用Python模拟网站中对JavaScript加密的方法”,在日常操作中,相信很多人在用Python模拟网站中对JavaScript加密的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”用...
      99+
      2023-06-17
    • SSL加密过程中使用了哪些加密算法
      SSL加密过程中使用了以下加密算法: 对称加密算法:SSL会使用对称加密算法来加密通信中的数据,如DES、3DES、AES等。 ...
      99+
      2024-04-17
      SSL证书
    • python中csv.DictReader()方法怎么使用
      本篇内容介绍了“python中csv.DictReader()方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简单使用csv.Di...
      99+
      2023-07-02
    • 利用Python实现RSA加密解密方法实例
      目录前言一、安装模块二、生成密钥对三、加密四、解密五、完整代码总结前言 加密技术在数据安全存储,数据传输中发挥着重要作用,能够保护用户隐私数据安全,防止信息窃取。RSA是一种非对称加...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作