[Day13]What is hash?


我第一次听到hash式在资料结构的课堂上,因为它式资料结构很重要的基本概念,同时也广泛运用在区块练储存加密资料中,所以今天的内容也会分成两大部分,第一部分讲解甚麽是hash,第二部分会谈到现在被广泛运用的地方!

Part1.甚麽是hash?

Int hash(一笔资料) {return 一个数值;}

将一笔资料重新表示成一个数值,这个数值就是杂凑值。而hash的中文有些人会说「哈希」(恩对直翻。)
hash在资料库的用意是让资料在资料库中更容易检索以及查询,而在密码学中hash则是负责进行加密,以利储存资料时能够让资料不被盗取。
Hash table 杂凑表示静态表格的一种(statis table)。
hashing杂凑法,就是将原本的数值经由一些复杂的数学函数,转换成相对应的值,而这个数学函数就称为「杂凑函数」(hashing function)
那再介绍三个在资料结构中很重要的简单的名词:

  • 溢位:再储存资料中,对应到的位置已经有资料了,就是溢位。
  • collision碰撞:这个就是当两个不同的资料在经过杂凑函数运算後,却得到相同的值,就叫做碰撞。
  • Perfect hashing完美杂凑:就是这个杂凑没有溢位也没有产生碰撞!完美!
    那以下就来做一个范例!
    当杂凑函数f(x)=5x+4,请分别计算下列几笔数值所对应的杂凑值。
    87、65、54
    f(87)=587+4 =439
    f(65)=5
    65+4 =329
    f(54)=5*54+4 =274

Part2.

第二部分要来谈谈广泛运用的地方。首先我先讲讲当初参加资安女婕斯的想法!
https://ithelp.ithome.com.tw/upload/images/20210927/20140143KMbrJZDQu7.png

https://ithelp.ithome.com.tw/upload/images/20210927/20140143Od2ZT2a3m0.png

https://ithelp.ithome.com.tw/upload/images/20210927/20140143D2tj5rkFXd.png

利用照片随机抽取一小格画素的16进位色码表当作一组密码(不对称加密),密码会被杂凑保护,所以里面的不对称有两层保护,再利用对称加密的方式使自己能够制作一组第一层密码,配合脸部辨识与指纹辨识系统,使每个人都有不同的对称密码,也不会被轻易的被盗取,也避免使用者忘记密码。若档案为文字,文字转数字,也用杂凑去保护密码。
我们原本是打算这样保护,真的很像放在区块链的保护方式XD,但我学到杂凑的应用是在储存电子病历,毕竟这是很私密的东西,不能随意窜改,也不允许资料外流,如果用类似的方式存照片,那照片是不是也一样能够受到非常安全又缜密的保护呢!


参考资料:图解资料结构:使用Java(第三版)
https://www.books.com.tw/products/0010787519?gclid=Cj0KCQjw18WKBhCUARIsAFiW7JwY20ZDt-4leJ_zIazqxniPDQcY4mCv5g5QpiDJInxQtWD-_OcLIW4aAqKjEALw_wcB


那今天的介绍就到这边拉~
真的是没有很专业的介绍,比较像是跟大家分享我学到甚麽,我还有很多要学习的地方:(
如果喜欢的话明天记得继续回来看下一篇!影片记得按赞订阅开小铃铛谢谢大家!
/images/emoticon/emoticon29.gif


<<:  认识CSS(二):如何使用CSS

>>:  DAY25-JAVA的多执行绪

Day-26 事件机制(2)

承前文,在事件的注册/绑定与监听中,入门者最常使用「监听CLICK事件」等侵入/非侵入式JavaSc...

第一份软件开发工作

於今年一月份毕业,在大学学了作业系统、资料结构、演算法、JAVA 程序语言...,但我从没想过要如何...

[Day21] Vue 3 单元测试 (Unit Testing) - Props & Computed

Props 与 Computed 是开发元件最常使用的属性,下面的范例是一个运用 Props 与 C...

DAY 20-数位签章-ECDSA

「你拿的是我的信用卡...」 ECDSA 是运用了椭圆曲线密码学所达成的数位签章演算法, 而比特币区...

WordPress 如何关闭 XML-RPC 服务,避免资安攻击风险

为了提升 WordPress 站台安全性,我安装了防火墙及防毒外挂 Wordfence,此外挂提供了...