iT邦幫忙

2021 iThome 鐵人賽

DAY 13
1
影片教學

連續30天,每天5分鐘,一起學習blockchain!系列 第 13

[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


上一篇
[Day12]加密方式
下一篇
[Day14]What is Hash? part.2
系列文
連續30天,每天5分鐘,一起學習blockchain!30

1 則留言

0
jafarwu
iT邦新手 5 級 ‧ 2021-09-27 21:46:12

手是不是不夠比天數了XD雖然day7之後好像都沒比了:(
你都怎麼唸hash 我都唸hash 你是唸hash還是hash或者哈希
有一天茲卡(不是逃犯) 睡不著,要求要睡在哈跟希的中間,於是他們就成了害羞的一家哈(茲卡)希
/images/emoticon/emoticon21.gif
如果覺得很冷 一定是Zero皇講的

我要留言

立即登入留言