Hash算法原理

核心提示散列表,它是基于高速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构能够理解为一个线性表,可是当中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是依据关键码值(Key valu

散列表,它是基于高速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构能够理解为一个线性表,可是当中的元素不是紧密排列的,而是可能存在空隙。

散列表(Hash table,也叫哈希表),是依据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

比方我们存储70个元素,但我们可能为这70个元素申请了100个元素的空间。70/100=0.7,这个数字称为负载因子。

我们之所以这样做,也是为了“高速存取”的目的。我们基于一种结果尽可能随机平均分布的固定函数H为每一个元素安排存储位置,这样就能够避免遍历性质的线性搜索,以达到高速存取。可是因为此随机性,也必定导致一个问题就是冲突。

所谓冲突,即两个元素通过散列函数H得到的地址同样,那么这两个元素称为“同义词”。这类似于70个人去一个有100个椅子的饭店吃饭。散列函数的计算结果是一个存储单位地址,每一个存储单位称为“桶”。设一个散列表有m个桶,则散列函数的值域应为[0,m-1]。

扩展资料:

SHA家族的五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布;是美国的政府标准。后四者有时并称为SHA-2。

SHA-1在许多安全协定中广为使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被视为是MD5(更早之前被广为使用的杂凑函数)的后继者。但SHA-1的安全性如今被密码学家严重质疑;

虽然至今尚未出现对SHA-2有效的攻击,它的算法跟SHA-1基本上仍然相似;因此有些人开始发展其他替代的杂凑算法。

应用

SHA-1, SHA-224, SHA-256, SHA-384 和 SHA-512 都被需要安全杂凑算法的美国联邦政府所应用,他们也使用其他的密码算法和协定来保护敏感的未保密资料。FIPS PUB 180-1也鼓励私人或商业组织使用 SHA-1 加密。Fritz-chip 将很可能使用 SHA-1 杂凑函数来实现个人电脑上的数位版权管理。

首先推动安全杂凑算法出版的是已合并的数位签章标准。

SHA 杂凑函数已被做为 SHACAL 分组密码算法的基础。

参考资料:百度百科-sha家族

什么是HASH运动?

Hash活动没有固定的成员和组织,也不存在固定的模式,各个城市的具体做法各有不同,但所有的hash都有两个共同的主题:跑步和啤酒,其参加者也因此自称“The running club with a drinking problem”。经过几十年的发展,hash活动已经超越简单的体育锻炼活动,而形成了一种特色鲜明、独具魅力的文化。

一、Hash活动崇尚一种自然健康、团结友爱、积极向上、挑战自我的精神。

Hash中最重要的一件事就是跑步,而且是有趣味、有难度的跑步。每次活动都有一两名参加者志愿充当“兔子”(hare)的角色,事先在野外设置好错综复杂的路线,而自称为猎狗(harriers)的参加者则追踪而至,顶着烈日骄阳或淋着瓢泼大雨,寻找兔子留下的蛛丝马迹。不论是攀山越岭还是涉水过河,是披荆斩麻还是或踏污踩粪,只要是兔子布下的路线,猎狗们就义无反顾地一跑到底,决不偷工减料。这样一两个小时跑下来,不仅锻炼了身体,更磨炼了意志。猎狗们在追踪过程中,每到一个岔路口,都需要分工协作,分头找路,才能最快地找到正确的道路。而遇上沟沟坎坎或荆棘刺丛的时候,参加者更是会伸出手来互相帮助。如果有人迷了路,他不仅会经历一次对自己应变能力的挑战,更将体会到同伴在寻找他的过程中表现出来的团结和友爱。

二、Hash活动体现了一种幽默、开朗、豁达而且自然随意的生活态度。在钢筋混凝土丛林中忙碌的现代人最需要的就是贴近自然,放松紧张的身心,而这也正是参加hash的人们所推崇的生活方式。

幽默可是说是全世界hash参加者的共性。他们最擅长的就是自嘲----自称为“猎狗”,海口的hash参加者还自称为“害虫”,每个人有一个可笑甚至恶心的外号,比如“卖女孩的小火柴”、“肉肉”、“肮脏的鱼”等等。唱歌、讲故事、说笑话、相互捉弄、插科打诨……每一次hash活动都充满欢笑和快乐。

看看沾满泥水的跑鞋和挂满草刺的小腿,畅饮一口冰啤酒高歌一曲,不由得豪气顿生,早不见了办公室里拘谨刻板的模样。新老朋友一起在空旷的野外大声喊叫,放肆地说笑话逗乐子,纵情地歌唱和欢笑,在音乐声中又闹又跳,疲倦的是躯体,而心灵得到了彻底的放松。

Hash活动过程中不准从事商业活动,不准打手机,不准谈工作,所有参加者都以绰号互称,远离铜臭气和复杂的人事关系,为纯真的友谊提供了生长的环境。难怪Hash里面许多人成了意气相投的好朋友之后,才猛然发现原来自己连对方是做什么生意的、有没有结婚都不知道。

Hash活动不以营利为目的,每次活动的结余归入基金供大活动时支出;所有工作都由参加者齐心协力地完成;每期的兔子可以按自己的意愿自由地组织一次跑步。这正是hash的魅力所在:为参加者提供一个可以尽情展现真我的机会。

正是出于对大自然的热爱,Hash参加者们对环境保护尤为重视。空瓶空罐绝对不允许乱扔、垃圾袋必须是可降解塑料做的、不准拈花惹草、不得踩坏庄稼、等等,这些规矩都是每一位hash参加者严格恪守,并在生活中也身体力行的。海口hash的参加者还曾组织过在五指山顶、牙龙湾、尖峰岭等风景点清理垃圾的活动。

三、Hash还是一项各种文化汇集、交流的活动。

Hash活动不仅仅是体育休闲活动。Hash参加者强烈的表现欲在这一宽松的环境中得到鼓励和张扬。他们创造了种种个性鲜明的hash徽标,改编了上千首hash歌曲,制作了不计其数的、风格各异的T恤、帽子、杯垫,出版了大量或精美或简陋然而同样精彩的hash杂志、报纸、宣传册,在Internet上,只要输入“hash”或者“hhh”进行搜索,可以发现成百上千个hash网站。可以说,hash已经有了自己的文化。参加过hash活动后,有人可能会不喜欢这种文化,可是没有人会忘记这样一种文化。它自有它独特的、令人无法忘怀的风味。

在衍生出自己的文化之外,Hash活动从一开始就体现了不同文化的碰撞和交流。第一次hash跑步,就是由旅居马来西亚的英国人组织的。世界各地的hash,吸引了各种各样不同文化的人参加,尤其是旅居当地的外国人。这一点在英美之外的国家的hash中特别明显。因此,hash除了带有明显的英美文化气息外,还成了各种文化交汇融合的活动。像在中国的大多数hash,就成了各种外国人和中国人共同喜爱的活动,英语成为主要的交流手段,而他们的徽标、T恤设计中却透着浓郁的中国文化气息。Hash还是一个全球性的休闲活动,除了各地自有的hash活动,还有定期举行的“泛亚hash”、“泛太平洋hash”等等区域性的活动,每四年还有一次“全球hash”。这种大规模的hash,更是云集来自世界各地的爱好者,无形中也就是一次文化的盛会。Hash活动于生俱来的宽容和自由的特性,为各种不同文化背景的参加者提供了一个平等、宽松、随意、自由发挥的环境。所有的参加者自由地来,自由地去,各人对各人的言行和安全负责,不论国籍、年龄、种族、肤色、职业、教育程度如何,都只是“猎狗”或者“兔子”这两种角色之一种,以绰号相称,甚至真名都不为人知。在“跑步”和“啤酒”这两个主题下,参加者们彻底放下面子和成见,打破各种人为的隔阂和壁垒,真正玩到一块儿,发展友谊,取长补短,尽情展现各自的风采。

海口的hash最早也是由外国人发起,除了旅居海口的外国人,还吸引了许多外企的白领和英语爱好者参加。后来由于爱好hash的外国人逐渐离开海口,参加海口hash的主要是中国人,其中大部分是旅居海口的内地人。Hash本身的渊源、活动形式及其精神都带有浓厚的西方文化色彩,必然会对其参与者造成一定的影响,而中国古老的文化也给海口hash烙上独特的印迹。

海口hash的参与者有老有少、有男有女,分别来自社会各个层面,有着不同的文化素养和人生观。他们来参加hash,不仅面对hash本身具有的西方文化的冲击,而且也面临着相互间不同观念带来的冲突。但只要是热爱运动和自然的人,在接受hash的同时,也就会接受hash宽容、自由的氛围及其多姿多彩的文化,自然也就会变得更宽容、更善于理解他人。

正是由于hash具有这样独特的文化魅力,这项休闲活动才持续了近70年而不衰,风靡全球几千个城市,受到各界的广泛关注。尤其是定期举行的跨地区的hash,比如环亚太地区的hash,或者环东南亚的hash,每次都在不同的城市举行,对于举办城市来说,这无疑是当地旅游业发展的一次良好契机

HASH运动

HASH(Hash House Harriers)是一项世界性的休闲健身活动,在全世界184个国家几千个城市中都有开展,包括中国的北京、广州、上海、深圳、乌鲁木齐等城市。 HASH仅仅是一种休闲锻炼方式的称呼,HASH活动并没有固定的模式,各个城市的做法也各不相同,HASH活动中也不存在固定的HASH成员和组织。这个名称代表的是一种健康、真实、自然而又稍带一点另类气息的生活态度。在钢铁丛林中忙碌的现代人最需要的就是身体、心灵的健康和贴近自然,而这也正是参加HASH的人们所推崇的生活方式。

HASH活动起源于1938年的吉隆坡。当时,一群英国人经常到当地一个饭店去喝酒,消磨时光。有一天,他们中的一个人突发奇想,要重温英国的一种古老的游戏--猎狗抓兔子。他在橡胶林里边跑边用面粉撒下记号,再让朋友们顺着记号去抓他。抓到他之后,大家热热闹闹地回到饭店狂饮一番以示庆祝。所以,HASH中最重要的两件事就是跑步和啤酒。从此,参加跑步的人就自称猎狗(harrier),而撒路标的人自然就是兔子(hare)了。再后来,他们创立了一个跑步俱乐部,并取名为"小饭馆猎狗队"(The Hash House Harriers)。"hash house"指的是廉价的小饭馆,之所以叫这个名字,据说是为了取笑他们经常聚会的饭店。

HASH跑步的规则源于传统的英国式纸片追踪游戏。开始由1~2个跑步者(即兔子)在前面寻找路径,并在迂回和岔路口之处做下标记。在他们之后,将是一大群跑步者(即猎狗)的穷追。只有"兔子"知道怎样走,追踪的"猎狗"们根据他所做标记,沿途追寻。跑步地点一般选在郊外。跑步者沿着"兔子"事先设计好的路线,跑过树林、田埂、小溪、草地,呼吸着大自然的清新空气,同时也锻炼了身体。

几十年后,该活动已经遍及全世界,几乎在任何一个国家都可以看到harrier的足迹,许多人甚至以到世界各地参加HASH,收集不同的HASH T恤为乐。在许多国家,HASH也已经成为当地人和外国人进行文化交流的场合。正因为HASH是一项世界性的活动,所以在HASH中,使用最多的语言是英语。

1997年12月13日,Alex the Arse 和Shit Face等外国人发起了海口HASH的第一次跑步。从此之后,每周六的下午3:30,猎狗们都在海口市海甸岛和平大道寰岛泰得大酒店对面的好莱坞酒吧门前集合,乘车前往跑步地点(一般都在野外),跑完步后,新老朋友们一起休息、聊天、玩游戏,夜幕降临后,大家到某个餐馆用餐或在郊外烧烤。这项活动创造了一个友爱、健康、环保、热爱大自然的氛围。在海口,HASH被戏称为"害帮",参加HASH的人自称"害虫"。北京、深圳等地也有这样的组织,不过规则有所不同。

 
友情链接
鄂ICP备19019357号-22