zoukankan      html  css  js  c++  java
  • hash

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

    特征

    hash值的计算过程是依据这个值的一些特征计算的,这就要求被hash的值必须固定,因此被hash的值是不可变的

    不可变类型:

    数字、字符串、元组

    可变类型:

    列表

    语法

    names = ("jack","tom","lily",1,2,3,3,2,2,2)
    print(hash(names))
    print(hash(123))
    print(hash("abc"))
    

      输出

    -4400841986320872870
    123
    -1069225786115799872

    在 hash() 对对象使用时,所得的结果不仅和对象的内容有关,还和对象的 id(),也就是内存地址有关

    用途

    文件签名

    md5加密(网站中的用户名和密码(明文加密为密文。不能反解))

    密码验证

    hash不能保证每个映射都是一一对应,有时可能会出现不同值对应相同,所以通常用到hash要解决hash冲突。

  • 相关阅读:
    Ueditor之SAE移植
    SAE flask及其扩展 bug指南
    SAE 安装未包含的第三方依赖包
    Bootstrap 和 LESS
    Device.js——检测设备平台、操作系统的Javascript 库
    Flask 富文本编辑器
    DDoS攻击
    WPF之数据绑定
    参数测试
    总结 一下UML 类图的关系
  • 原文地址:https://www.cnblogs.com/fantsaymwq/p/9496640.html
Copyright © 2011-2022 走看看