hash函数:

一般翻译为“散列”或“哈希”,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值唯一来唯一的确定输入值(这也是应用hash函数时需要注意避免的)。简单来说,就是将任意长度的消息压缩到某一固定长度的消息摘要的函数。

1.特征:被hash的值不变,对应hash的值一定是不变的。(hash的值的计算过程是依据这个值的一些特征计算的,这就要求hash的值必须固定,因此被hash的值是不可变的。)

不可变:数字,字符串,元组;可变:列表。

>>> hash('alex')
-7043802833819298431
>>> hash('alex')
-7043802833819298431
>>> hash('alexx')
4559968772027997698

  2.用途:文件签名(加一个文件签名,确认文件没有被篡改),md5加密(例如,你输入的密码通过md5加密后放入数据库,因为md5不能反解,所以工程师是不可能知道你的密码的),密码验证。

Python全栈之路----hash函数的更多相关文章

  1. Python全栈之路----目录

    Module1 Python基本语法 Python全栈之路----编程基本情况介绍 Python全栈之路----常用数据类型--集合 Module2 数据类型.字符编码.文件操作 Python全栈之路 ...

  2. Python全栈之路----常用模块----hashlib加密模块

    加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...

  3. Python全栈之路目录结构

    基础 1.Python全栈之路-----基础篇 2.Python全栈之路---运算符与基本的数据结构 3.Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数 4.Python全栈 ...

  4. python 全栈之路

    目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. Python - 模块 4. Python - 面对对象 5. Python - 文 ...

  5. python全栈开发 生成器 :生成器函数,推导式及生成器表达式

    python 全栈开发 1.生成器函数 2.推导式 3.生成器表达式 一.生成器函数 1.生成器: 生成器的本质就是迭代器 (1)生成器的特点和迭代器一样.取值方式和迭代器一样(__next__(), ...

  6. python全栈开发之匿名函数和递归函数

    python 匿名函数和递归函数 python全栈开发,匿名函数,递归函数 匿名函数 lambda函数也叫匿名函数,即函数没有具体的名称.是为了解决一些功能很简单需求而设计的一句话函数.如下: #这段 ...

  7. Python全栈之路----函数----返回值

    函数外部的代码想要获取函数的执行结果,就可以在函数里用return语句,把结果返回. def stu_register(name,age,course='PY',country='CN'): prin ...

  8. Python全栈之路4--内置函数--文件操作

    上节重点回顾: 判断对象是否属于某个类,例如: 列表中有个数字,但是循环列表判断长度,用len会报错;因为int不支持len,所以要先判断属于某个类,然后再进行if判断. # isinstance(对 ...

  9. Python全栈之路----函数----内置方法

    Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod ...

随机推荐

  1. opencv学习之路(23)、轮廓查找与绘制(二)——访问轮廓每个点

    一.简介 二.画出每个轮廓的每个点 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat src= ...

  2. Python入门 模块

    module 模块 atestmodule.py #!/usr/bin/env python3 # -*- coding: utf-8 -*- 'a test module' def addFunc( ...

  3. Windows下nginx+tomcat实现简单的负载均衡

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请 ...

  4. 阿里技术专家详解Dubbo实践,演进及未来规划

    https://mp.weixin.qq.com/s/9rVGHYfeE8yM2qkSVd2yEQ

  5. JS对象、数据类型区别、函数

    对象 基本数据类型都是单一的值,值和值之间没有任何联系,变量之间独立,不能成为一个整体. 对象属于一种符合的数据类型,对象中可以保存对个不同数据类型的属性. 对象分类:  1.内建对象   由ES标准 ...

  6. 自制URL转换器

    自定义 url 转换器五个步骤: 定义一个类. 在类中定义一个属性  regex  ,这个属性是用来保存 url 转换器规则的正则表达式. 实现  to_python(self,value)  方法, ...

  7. collection.Counter

    a=['A','B','C','A','D','E','W','A','B'] b=collections.Counter(a)  # 可以统计a中的各个元素出现的次数print(b)print(b[ ...

  8. fast-route的使用

    <?php require 'vendor/autoload.php'; // 通过 FastRoute\simpleDispatcher() 方法定义路由,第一个参数必须是 FastRoute ...

  9. 配置react, redux, next.js环境

    1. react https://reactjs.org/docs/add-react-to-a-new-app.html npm install -g create-react-app create ...

  10. JJTree Tutorial for Advanced Java Parsing

    The Problem JJTree is a part of JavaCC is a parser/scanner generator for Java. JJTree is a preproces ...