文档库 最新最全的文档下载
当前位置:文档库 › 哈 希 常 见 算 法 及 原 理

哈 希 常 见 算 法 及 原 理

哈 希 常 见 算 法 及 原 理
哈 希 常 见 算 法 及 原 理

数据结构与算法-基础算法篇-哈希算法

1. 哈希算法

如何防止数据库中的用户信息被脱库?

你会如何存储用户密码这么重要的数据吗?仅仅 MD5 加密一下存储就够了吗?

在实际开发中,我们应该如何用哈希算法解决问题?

1. 什么是哈希算法?

将任意长度的二进制值串映射成固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是哈希值。

2. 如何设计一个优秀的哈希算法?

单向哈希:

从哈希值不能反向推导出哈希值(所以哈希算法也叫单向哈希算法)。

篡改无效:

对输入敏感,哪怕原始数据只修改一个Bit,最后得到的哈希值也大不相同。

散列冲突:

散列冲突的概率要很小,对于不同的原始数据,哈希值相同的概率非常小。

执行效率:

哈希算法的执行效率要尽量高效,针对较长的文本,也能快速计算哈

希值。

2. 哈希算法的常见应用有哪些?

7个常见应用:安全加密、唯一标识、数据校验、散列函数、负载均衡、数据分片、分布式存储。

1. 安全加密

常用于加密的哈希算法:

MD5:MD5 Message-Digest Algorithm,MD5消息摘要算法

SHA:Secure Hash Algorithm,安全散列算法

DES:Data Encryption Standard,数据加密标准

AES:Advanced Encryption Standard,高级加密标准

对用于加密的哈希算法,有两点格外重要,第一点是很难根据哈希值反向推导出原始数据,第二点是散列冲突的概率要小。

在实际开发中要权衡破解难度和计算时间来决定究竟使用哪种加密算法。

2. 唯一标识

通过哈希算法计算出数据的唯一标识,从而用于高效检索数据。

3. 数据校验

利用哈希算法对输入数据敏感的特点,可以对数据取哈希值,从而高效校验数据是否被篡改过。

4. 散列函数

1.如何防止数据库中的用户信息被脱库?你会如何存储用户密码这么重要的数据吗?

使用MD5进行加密

字典攻击:如果用户信息被“脱库”,黑客虽然拿到的是加密之后的密文,但可以通过“猜”的方式来破解密码,这是因为,有些用户的密码太简单。

针对字典攻击,我们可以引入一个盐(salt),跟用户密码组合在一起,增加密码的复杂度。

2.现在,区块链是一个很火的领域,它被很多人神秘化,不过其底层的实现原理并不复杂。其中,哈希算法就是它的一个非常重要的理论基础。你能讲一讲区块链使用的是哪种哈希算法吗?是为了解决什么问题而使用的呢?

区块链是一块块区块组成的,每个区块分为两部分:区块头和区块体。区块头保存着自己区块体和上一个区块头的哈希值。因为这种链式关系和哈希值的唯一性,只要区块链上任意一个区块被修改过,后面所有区块保存的哈希值就不对了。区块链使用的是 SHA256 哈希算法,计算哈希值非常耗时,如果要篡改一个区块,就必须重新计算该区块后面所有的区块的哈希值,短时间内几乎不可能做到。

4. 哈希算法在分布式系统中的应用

1. 负载均衡

如何实现一个会话粘滞(session sticky)的负载均衡算法?也就是说,在一次会话中的所有请求都路由到同一个服务器上。

解决方案

通过哈希算法对客户端IP或会话ID计算哈希值,将取得的哈希值与

服务器列表的大小进行取模运算,最终得到的值就是应该被路由到的服务器编号。这样,就可以把同一个IP过来的请求都路由到同一个后端服务器上。

2.数据分片

如何统计“搜索关键词”出现的次数?

需求描述

假如我们有1T的日志文件,这里面记录了用户的搜索关键词,我们想要快速统计出每个关键词被搜索的次数,该怎么做呢?

问题分析

这个问题有两个难点,第一个是搜索的日子很大,没办法放到一台机器的内存中。第二个是只用一台机器来处理这么巨大的数据,处理时间会很长。

解决方案

先对数据进行分片,然后采用多台(比如n台)机器进行处理。具体做法:从搜索记录的日志文件中依次读取每个关键词,并通过哈希函数计算该关键词的哈希值,然后跟机器的台数n取模,最终得到值就是该关键词应该被分到的机器编号,这样相同的关键词一定会被分配到同一台机器上,数据分配完成后,由多台机器并行进行统计,最后合并起来就是最终结果。

实际上,这里的处理过程也是 MapReduce 的基本设计思想。

如何快速判断图片是否存在图库中?

需求描述

假设现在我们的图库中有1亿张图片,如何快速判断图片是否在图库中?基本方式是给每个图片去唯一表示(或者信息摘要),然后构建散列表。

问题分析

很显然,在单台机器上构建散列表示行不通的,因为单台机器的内存有限,而1亿张图片构建散列表远远超过了单台机器的内存上限。

解决方案

准备n台机器,让每台机器只维护一部分图片对应的散列表。我们每次从图库中读取一个图片,计算唯一标识,然后与机器个数n求余取模,得到的值就对应要分配的机器编号,然后将这个图片的唯一表示和图片路径发往对应的机器构建散列表。

当我们要判断一个图片是否在图库中时,我们通过同样的哈希算法,计算这个图片的唯一表示,然后与机器个数n求余取模。假设得到的值是k,那就去编号为k的机器构建的散列表中查找。

如何估算给1亿张图片构建散列表大约需要多少台机器?

散列表中每个数据单元包含两个信息,哈希值和图片文件的路径。假设我们通过 MD5 来计算哈希值,那长度就是 128 比特,也就是 16 字节。文件路径长度的上限是 256 字节,我们可以假设平均长度是 128 字节。如果我们用链表法来解决冲突,那还需要存储指针,指针只占用 8 字节。所以,散列表中每个数据单元就占用 152 字节(这里只是估算,并不准确)。

假设一台机器的内存大小为 2GB,散列表的装载因子为 0.75,那一台

机器可以给大约 1000 万(2GB*0.75-152)张图片构建散列表。所以,如果要对 1 亿张图片构建索引,需要大约十几台机器。在工程中,这种估算还是很重要的,能让我们事先对需要投入的资-源、资金有个大概的了解,能更好地评估解决方案的可行性。

实际上,针对这种海量数据的处理问题,我们都可以采用多机分布式处理。借助这种分片的思路,可以突破单机内存、CPU 等资-源的限制。

3. 分布式存储

什么是分布式存储?

分布式存储就是将数据存储在多台机器上并提供高效的读取、写入支持。那如何决定将哪个数据放到哪个机器上呢?可以利用数据分片的思想,即通过哈希算法对数据取哈希值,然后对机器个数取模,这个最终值就是应该存储的缓存机器编号。

遇到的问题是什么?

如果数据持续增多,原来的机器数量已经不能满足需求,就需要增加机器,这时就麻烦了,因为所有的数据都需要重新哈希值进行再次分配。这就相当于,缓存中的数据一下子都失效了,所有的数据请求都会穿透缓存,直接去请求数据库。这样就可能发生雪崩效应,压垮数据库。

解决方案是什么?

①这时,需要一种方法,使得新加入一个机器后,并不需要做大量的数据搬移。那就是在分布式系统中应用非常广泛的一致性哈希算法。

②一致性哈希算法的基本思想是什么呢?为了说清楚这个问题,我们假设有k个机器,数据的哈希值范围是[0-MAX],我们将整个范围划分成m

个小区间(m远大于k),每个机器复杂m-k个小区间。当有新机器加入的时候,我们就将某几个小区间的数据,从原来的机器中搬移到新的机器中。这样,既不用全部重新哈希、搬移数据,也保持了各个机器上数据量的均衡。

0xf3b97148,0x84be41de,0x1adad47d,0x6ddde4eb,0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a,则依次往后探测,直到遇到要查找的关键码,如果遇到了空地址还没有找到,

--随机下线10个服务器, 先shuffle,然后选择0到90,简单模仿随机计算。

? hash = hash * a + str.charAt(i);

准备n台机器,让每台机器只维护一部分图片对应的散列表。我们每次从图库中读取一个图片,计算唯一标识,然后与机器个数n求余取模,得到的值就对应要分配的机器编号,然后将这个图片的唯一表示和图片路径发往对应的机器构建散列表。

HashMapString,Integer map=new HashMapString,Integer ();

2.进行再探测。就是在其他地方查找。探测的方法也可以有很多种。

但是简单的求模运算容易找到规律,所以我们可以在散列函数中加入一个异或过程。

公钥密码:1976(W.Diffie和M.Hellman发表的《密码学的新方向》)--至今

优点:不论哈希表中有多少数据,查找、插入、删除(有时包括删除)

只需要接近常量的时间即0(1)的时间级。实际上,这只需要几条机器指令。

理论力学复习题及答案(哈工大版)汇总

一、是非题 1、力有两种作用效果,即力可以使物体的运动状态发生变化,也可以使物体发生变形。 (√) 2、在理论力学中只研究力的外效应。(√) 3、两端用光滑铰链连接的构件是二力构件。(×) 4、作用在一个刚体上的任意两个力成平衡的必要与充分条件是:两个力的作用线相同, 大小相等,方向相反。(√) 5、作用于刚体的力可沿其作用线移动而不改变其对刚体的运动效应。(×) 6、三力平衡定理指出:三力汇交于一点,则这三个力必然互相平衡。(×) 7、平面汇交力系平衡时,力多边形各力应首尾相接,但在作图时力的顺序可以不同。 (√) 8、约束力的方向总是与约束所能阻止的被约束物体的运动方向一致的。(×) 9、在有摩擦的情况下,全约束力与法向约束力之间的(应是最大)夹角称为摩擦角。(×) 10、用解析法求平面汇交力系的平衡问题时,所建立的坐标系x,y轴一定要相互垂直。 (×) 11、一空间任意力系,若各力的作用线均平行于某一固定平面,则其独立的平衡方程最多只有3个。 (×) 12、静摩擦因数等于摩擦角的正切值。(√) 13、一个质点只要运动,就一定受有力的作用,而且运动的方向就是它受力方向。(×) 14、已知质点的质量和作用于质点的力,质点的运动规律就完全确定。(×) 15、质点系中各质点都处于静止时,质点系的动量为零。于是可知如果质点 系的动量为零,则质点系中各质点必都静止。(×) 16、作用在一个物体上有三个力,当这三个力的作用线汇交于一点时,则此力系必然平衡。 (×) 17、力对于一点的矩不因力沿其作用线移动而改变。(√) 18、在自然坐标系中,如果速度υ= 常数,则加速度α= 0应是切线方向加速度为零。(×) 19、设一质点的质量为m,其速度 与x轴的夹角为α,则其动量在x轴上的投影为mvx =mvcos a。(√) 20、用力的平行四边形法则,将一已知力分解为F1和F2两个分力,要得到唯一解答,必须具备:已知 F1和F2两力的大小;或已知F1和F2两力的方向;或已知F1或F2中任一个力的大小和方向。 ( √) 21、某力在一轴上的投影与该力沿该坐标轴的分力其大小相等,故投影就是分力。 ( ×) 22、图示结构在计算过程中,根据力线可传性原理,将力P由A点传至B点,其作用效果不变。 (×)

哈工大理论力学期末考试及答案

三、计算题(本题10分) 图示平面结构,自重不计,B 处为铰链联接。已知:P = 100 kN ,M = 200 kN ·m ,L 1 = 2m ,L 2 = 3m 。试求支座A 的约束力。 四、计算题(本题10分) 在图示振系中,已知:物重Q ,两并联弹簧的刚性系数为k 1与k 2。如果重物悬挂的位置使两弹簧的伸长相等,试求:(1)重物振动的周期;(2)此并联弹簧的刚性系数。 五、计算题(本题15分) 半径R =0.4m 的轮1沿水平轨道作纯滚动,轮缘上A 点铰接套筒3,带动直角杆2作上下运动。已知:在图示位置时,轮心速度C v =0.8m/s ,加速度为零,L =0.6m 。试求该瞬时:(1)杆2的速度2v 和加速度2a ;(2)铰接点A 相对于杆2的速度r v 和加速度r a 。 六、计算题(本题15分) 在图示系统中,已知:匀质圆盘A 和B 的半径各为R 和r ,质量各为M 和m 。试求:以φ和θ为广义坐标,用拉氏方程建立系统的运动微分方程。

七、计算题(本题20分) 在图示机构中,已知:纯滚动的匀质轮与物A 的质量均为m ,轮半径为r ,斜面倾角为β,物A 与斜面的动摩擦因数为'f ,不计杆OA 的质量。试求:(1)O 点的加速度;(2)杆OA 的内力。 答案 三、解,以整体为研究对象,受力如图所示。 由()0C M F =∑ 11222(2)20A x A y P L F L L F L M ?-?--?-= ……(1) 再以EADB 为研究对象受力如图所示, 由12()0 0B Ax Ay M F F L F L M =?-?-=∑ (2)

哈工大版理论力学复习

第一章静力学的基本概念与公理 一、重点及难点 1.力的概念 力是物体间的相互机械作用,其作用效果可使物体的运动状态发生改变和使物体产生变形。前者称为力的运动效应或外效应,后者称为力的变形效应或内效应。力对物体的作用效果,取决于三个要素:①力的大小:②力的方向;⑧力的作用点。力是定位矢量。 2.刚体的概念 所谓刚体,是指在力的作用下形状和大小都始终保持不变的物体;或者说,刚体内任意两点间的距离保持不变。刚体是实际物体抽象化的一种力学模型。 3.平衡的概念 在静力学中,平衡是指物体相对惯性坐标系(地球)处于静止或作匀速直线运动的状态。它是机械运动的特殊情况。 4.静力学公理 静力学公理概括了力的基本性质,是静力学的理论基础。 公理一(二力平衡原理):作用在刚体上的两个力,使刚体处于平衡的必要和充分条件是:这两个力的大小相等。方向相反,作用在同一直线上。 公理二(加减平衡力系原理):可以在作用于刚体的任何一个力系上加上或去掉几个互成平衡的力,而不改变原力系对刚体的作用效果。推论(力在刚体广的可传性):作用在刚体上的力可沿其作用线在刚体内移动,而不改变它对该刚体的作用效果。 公理三(力的平行四边形法则):作用于物体上任一点的两个力可合成为作用于同一点的一个力,即合力。合力的矢由原两力的矢为邻边而作出的力平行四边形的对角矢来表示。即合力为原两力的矢量和。推论(三力平衡汇交定理):作用于刚体上3个相互平衡的力,若其中两个力的作用线汇交于—点,则此3个力必在同一平面内,且第3个力的作用线通过汇交点。 公理四(作用和反作用定律)任何两个物体相互作用的力,总是大小相等,方向相反,沿同一直线,并分别作用在这两个物体上。 公理五(刚化原理):变形体在某一力系作用下处于平衡时,如将此变形体刚化为刚体,则平衡状态保持不变。 应当注意这些公理中有些是对刚体,而有些是对物体而言。5.约束与约束反力 限制物体运动的条件称为约束。构成约束的物体称为约束体,也称为约束。约束反力是约束作用在被约束物体上的力,其方向与约束

理论力学哈工大第八版答案

哈尔滨工业大学理论力学教研室理论力学(I)第8版习题答案《理论力学(1 第8版)/“十二五”普通高等教育本科国家级规划教材》第1版至第7版受到广大教师和学生的欢迎。第8版仍保持前7版理论严谨、逻辑清晰、由浅入深、宜于教学的风格体系,对部分内容进行了修改和修正,适当增加了综合性例题,并增删了一定数量的习题。本书内容包括静力学(含静力学公理和物体的受力分析、平面力系、空间力系、摩擦),运动学(含点的运动学、刚体的简单运动、点的合成运动、刚体的平面运动),动力学(含质点动力学的基本方程、动量定理、动量矩定理、动能定理、达朗贝尔原理、虚位移原理)。本书可作为高等学校工科机械、土建、水利、航空、航天等专业理论力学课程的教材,也可作为高职高理论力学(I)第8版哈尔滨工业大学理论力学教研室习题答案专、成人高校相应专业的自学和函授教材,亦可供有关工程技术人员参考。本书配套的有《理论力学学习辅导》、《理论力学(I)第8版哈尔滨工业大学理论力学教研室习题答案理论力学思考题集》、《理论力学解题指导及习题集》(第3版)、《理论力学电子教案》、《理论力学网络课程》、《理论力学习题解答》、《理论力学网上作业与查询系统》等。 理论力学(I)第8版哈尔滨工业大学理论力学教研室课后答案前辅文 静力学

关注网页底部或者侧栏二维码回复 理论力学(I)第8版答案免费获取答案 引言 第一章静力学公理哈尔滨工业大学理论力学教研室理论力学(I)第8版课后答案理论力学思考题集》、《理论力学解题指导及习题集》(第3版)、《理论力学电子教案》、《理论力学网络课程》、《理论力学习题解答》、《理论力学网上作业与查询系统》等。 理论力学(I)第8版哈尔滨工业大学理论力学教研室课后答案前辅文 静力学 引言 第一章静力学公理和物体的受力分析

哈工大第七版 理论力学 课后有题答案 10章

10-3 如图所示水平面上放1 均质三棱柱A,在其斜面上又放 1 均质三棱柱B。两三棱柱的横截面均为直角三角形。三棱柱A的质量为mA三棱柱 B 质量mB的 3 倍,其尺寸如图所示。设各处摩擦不计,初始时系统静止。求当三棱柱 B 沿三棱柱A滑下接触到水平面时,三棱柱A移动的距离。 11-4 解取A、B 两三棱柱组成 1 质点系为研究对象,把坐标轴Ox 固连于水平面上,O 在 棱柱A左下角的初始位置。由于在水平方向无外力作用,且开始时系统处于静止,故系统 质心位置在水平方向守恒。设A、B 两棱柱质心初始位置(如图b 所示)在x 方向坐标 分别为 当棱柱 B 接触水平面时,如图c所示。两棱柱质心坐标分别为 系统初始时质心坐标 棱柱 B 接触水平面时系统质心坐标 因并注意到得 10-4 如图所示,均质杆AB,长l,直立在光滑的水平面上。求它从 铅直位无 初速地倒下时,端点A相对图b所示坐标系的轨迹。 解取均质杆AB 为研究对象,建立图11-6b 所示坐标系Oxy,原点O 与杆AB 运动初始时的点 B 重合,因为杆只受铅垂方向的重力W 和地 面约束反力N F 作用,且系统开始时静止,所以杆AB 的质心沿轴x 坐 标恒为零,即

设任意时刻杆AB 与水平x 轴夹角为θ,则点A坐标 从点A坐标中消去角度θ,得点A轨迹方程 10-5 质量为m1 的平台AB,放于水平面上,平台与水平面间的动滑动摩擦因数为f。 质量为m2 的小车D,由绞车拖动,相对于平台的运动规律为,其中b 为已知常数。不计绞车的质量,求平台的加速度。 解受力和运动分析如图b 所示 式(1)、(4)代入式(3),得 10-6 如图所示,质量为m的滑块A,可以在水平光滑槽中运动,具有刚性系 数为k 的弹簧 1 端与滑块相连接,另 1 端固定。杆AB 长度为l,质量忽略不计,A端与滑块A铰接,B 端装有质量m1,在铅直平面内可绕点A旋转。设在力偶M 作用下转动角速度ω为常数。求滑块A的运动微分方程。 解取滑块A和小球B组成的系统为研究对象,建立向右坐标x,原点取在 运动开始时滑块A的质心上,则质心之x 坐标为

理论力学期末考试5(含答案)

哈工大2001年秋季学期理论力学试题 一、是非题(每题2分。正确用√,错误用×,填入括号内。) 1、作用在一个物体上有三个力,当这三个力的作用线汇交于一点时,则此力系必然平衡。() 2、力对于一点的矩不因力沿其作用线移动而改变。() 3、在自然坐标系中,如果速度v = 常数,则加速度a = 0。() 4、虚位移是假想的,极微小的位移,它与时间、主动力以及运动的初始条件无关。() 5、设一质点的质量为m,其速度v与x轴的夹角为α,则其动量在x轴上的投影为mv x =mv cosα。() 二、选择题(每题3分。请将答案的序号填入划线内。) 1、正立方体的顶角上作用着六个大小相等的力,此力系向任一点简化的结果是。 ①主矢等于零,主矩不等于零; ②主矢不等于零,主矩也不等于零; ③主矢不等于零,主矩等于零; ④主矢等于零,主矩也等于零。 2、重P的均质圆柱放在V型槽里,考虑摩擦柱上作用一力偶,其矩为M时(如图),圆柱处于极限平衡状态。此时按触点处的法向约束力N A与N B的关系为。 ①N A = N B;②N A > N B;③N A < N B。

3、边长为L 的均质正方形平板,位于铅垂平面内并置于光滑水平面上,如图示,若给平板一微小扰动,使其从图示位置开始倾倒,平板在倾倒过程中,其质心 C 点的运动轨迹是 。 ①半径为L /2的圆弧; ②抛物线; ③椭圆曲线; ④铅垂直线。 4、在图示机构中,杆O 1 A //O 2 B ,杆O 2 C //O 3 D ,且O 1 A = 200mm ,O 2 C = 400mm , CM = MD = 300mm ,若杆AO 1 以角速度 ω= 3 rad / s 匀速转动,则D 点的速度的大小为 cm/s ,M 点的加速度的大小为 cm/s 2。 ① 60; ②120; ③150; ④360。 5、曲柄OA 以匀角速度转动,当系统运动到图示位置(OA //O 1 B ,AB OA )时,有A v B v ,A a B a ,AB ω 0,αAB 0。 ①等于; ②不等于。

哈尔滨工业大学第7版理论力学第4章课后习题答案_图文(精)

图 4-1 图4-2

图4-3 第4章空间力系 4-1 力系中,F 1=100 N ,F 2=300 N ,F 3=200 N ,各力作用线的位置如图4-1所示。试将力系向原点O 简化。 解由题意得 N 3455 2200132300R ?=× ?×?=x F N 25013 3 300R =× =y F N 6.1051200100R =×

?=z F m N 8.513.05 12001.013 3300??=×× ?×× ?=x M m N 6.361.013 220020.0100??=××+×?=y M m N 6.1033.05 22002.013 3300?=×× +××=z M 主矢N 4262R 2R 2R R =++=x y z F F F F ,N 6.10250345(R k j i ++?=F 主矩 m N 12222 2?=++= z y x O M M M M ,m N 1046.368.51(?+??=k j i O M 4-2 1平行力系由5个力组成,力的大小和作用线的位置如图4-2所示。图中小正方格 的边长为10 mm 。求平行力系的合力。 解由题意得合力R F 的大小为

N 20N 15N 10N 20N 10N 1R =??++=Σ=z F F N 20R k F =合力作用线过点(C x ,C y ,0 : mm 601010202030104015(201=×?×+×+×=C x mm 5.3240152010502030101015(20 1 =×?×?×+×+×= C y 4-3 图示力系的3个力分别为N 3501=F ,N 4002=F 和N 6003=F ,其作用线的 位置如图4-3所示。试将此力系向原点O 简化。 解由题意得 N 1442 1 6001001860350'R ?=× ?×=x F N 0101866 .0600707.04001001880350'R =×+×+× =y F N 517707.0400100 1890350'R ?=×??×

相关文档
相关文档 最新文档