`
san_yun
  • 浏览: 2653437 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

hash算法

 
阅读更多

 

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

 

 HASH主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值. 也可以说,hash就是找到一种数据内容和数据存放地址之间的映射关系

  了解了hash基本定义,就不能不提到一些著名的hash算法,MD5 和 SHA1 可以说是目前应用最广泛的Hash算法 ,而它们都是以 MD4 为基础设计的

 

hash算法在实际中用处还是比较大的,

在分布式缓存中通过hash可以分布的比较平均,一般这样使用key:

 

def get_encode_key(key):
    import haslib
    m1 = hashlib.md5()
    m1.update(key.encode("utf8"))
    key = m1.hexdigest().lower()
     
    return key
 

在数据库中还可以使用md5缩短长度:

alter table message_messagesource add COLUMN img_src_sum varchar(32) default null;
alter table `message_messagesource` add index idx_img_src_sum (img_src_sum);
update message_messagesource set img_src_sum=md5(image_src);
 

 

分享到:
评论

相关推荐

    高运算性能,低碰撞率的hash算法MurmurHash算法.zip

    MurmurHash算法由Austin Appleby创建于2008年,现已应用到Hadoop、libstdc 、nginx、libmemcached,Redis,Memcached,Cassandra,HBase,Lucene等开源系统。2011年Appleby被Google雇佣,随后Google推出其变种的...

    Java实现GeoHash算法

    Java实现GeoHash算法是一种在IT领域中用于地理位置数据存储和检索的技术。GeoHash将经纬度坐标转换为字符串,使得地理位置可以被高效地索引和查询。这种算法利用了空间分割和编码策略,使得相邻的位置在编码后具有...

    图像的相似度Hash算法(aHash的delphi实现).rar

    在IT领域,Hash算法是一种广泛应用于数据验证、存储和比较的技术。它将任意长度的数据转换成固定长度的输出,通常称为Hash值或指纹。在这个压缩包中,我们重点关注的是图像的相似度Hash算法,特别是平均哈希算法(a...

    20多个常用的Hash算法C++ 实现

    Hash函数集合,包含主流的hash函数: nginx_hash算法,OpenSSL_hash算法,RSHash,JSHash,PJWHash,ELFHash,BKDRHash,DJBHash,DEKHash,APHash等等!

    geohash算法实现Java代码

    GeoHash算法是一种基于地理坐标的分布式空间索引技术,它通过将地球表面的经纬度坐标转化为可比较的字符串,使得我们可以高效地进行地理位置的搜索、范围查询以及邻居查找等操作。这种算法尤其适用于大数据和分布式...

    Hash算法MD5实验报告材料.doc

    "Hash算法MD5实验报告材料" 本实验报告主要介绍了Hash算法MD5的实验报告,旨在通过实际编程来了解MD5算法的加密和解密过程,并加深对Hash算法的认识。 一、Hash算法的定义 Hash算法是一种将输入数据转换为固定...

    几种经典的Hash算法的实现(源代码)

    ### 经典Hash算法概述与实现 #### 一、引言 哈希算法在计算机科学领域扮演着极其重要的角色,特别是在数据检索、信息安全以及数据完整性校验等方面。它能够将任意长度的数据转换成一个固定长度的哈希值,这一过程在...

    hash算法工具类

    一个hash算法的工具类,里面包含了一些常用的hash算法

    hash算法相关介绍

    ### Hash算法相关介绍 在计算机科学领域,哈希(Hash)是一种将任意长度的数据映射为固定长度数据的技术。哈希算法广泛应用于多种场景中,包括但不限于数据完整性验证、密码存储、快速查找等。本文主要介绍了几种...

    C语言实现hash算法

    在IT领域,哈希算法(Hash Algorithm)是一种用于将任意长度的数据转化为固定长度输出的算法。这个过程通常称为哈希或散列。哈希算法在信息安全、数据完整性验证、密码学等多个方面都有着广泛的应用。本项目是用...

    常用的hash算法(java实现)

    在计算机科学中,哈希(Hash)算法是一种用于将任意长度的数据映射为固定长度输出的函数。这种输出通常称为哈希值或消息摘要。在Java编程语言中,实现哈希算法可以方便地用于数据验证、查找表以及密码存储等多种用途...

    实验五:安全Hash算法SHA-1的实现

    ### 安全Hash算法SHA-1的实现 #### 一、Hash函数与数据完整性 Hash函数在现代密码学中扮演着至关重要的角色,它能够确保数据的完整性和一致性。一个典型的Hash函数接受任意长度的数据输入,并产生固定长度的输出,...

    geohash算法实现

    Geohash算法实现,经纬度到geohash编码的实现

    geohash算法mysql版代码

    网上有很多geohash算法的实现,都是基于java或者php代码实现的,没有sql实现的版本,这里使用mysql简单实现了这个算法

    Hash算法实验

    Hash算法在IT行业中扮演着至关重要的角色,尤其是在信息安全和数据完整性验证方面。本实验主题为“Hash算法实验”,主要涉及的是密码学中的消息摘要技术,具体是使用MD5(Message-Digest Algorithm 5)算法对文件...

    Geohash 算法的純 C 實現 将所在地球位置经纬度编解码為一定格式字串 有志於開發外送派單工程師請享用~~

    Geohash算法就是将经纬度编码,将二维变一维,给地址位置分区的一种算法 此檔案為C語言實現 函式庫使用介紹: 1)編碼 char* geohash_encode(double lat, double lng, int precision); 以所需精度獲取緯度和經度並...

Global site tag (gtag.js) - Google Analytics