Aloha!又是我少女人妻 Uerica!今天我家狗狗總算沒有一大早叫我起床了,可能之前累爆昨夜一路睡九小時不中斷,起床真是神清氣爽啊~下午發現狗狗還在睡,覺得很疑惑所以去看一下,發現我家狗狗掛著兩條鼻涕,整隻狗還慵懶慵懶的,可能是秋天到了被冷氣冷到了吧 QQ,為了讓她好好休息,今天就不敢吸狗了~
在前面有提到,我們可用公開金鑰密碼系統或迪菲-赫爾曼金鑰交換等方式來交換加密與解密的金鑰,但傳輸的密文在加密後到解密之前的過程中,還是有可能有意或無意的修改到資料,或是無法確立是否為正確來源等,以上種種都有可能造成最後的資訊錯誤,為了避免這樣的問題,就需要訊息鑑別碼機制
訊息鑑別碼,又稱訊息認證碼、檔案訊息鑑別碼、消息認證碼、資訊認證碼等,作法是傳送方將密文與金鑰一起經由演算法的運算,產生一段出一段特定的結果,而接收方收到金鑰與密文後,也可用相同的演算法運算,最後比對是否為相同的結果,這樣的機制可以達到以下兩者優點
仙杜瑞拉送蘋果
有天仙杜瑞拉迷上種蘋果,於是想分一點給愛吃蘋果的白雪公主,首先先用某些安全的方式把金鑰給白雪公主
然後把蘋果放到只有金鑰可以解開的寶箱裡送給白雪公主
但你以為這樣就安全了嗎!不!白雪公主除了要防母后外,還要防冗員小矮人,所以在白雪公主真正吃到蘋果前都還有風險啊!
那怎麼辦呢?畢竟仙杜瑞拉邊緣人沒朋友,如果白雪公主出什麼意外,以後誰跟她喝姊妹下午茶?於是想出了一個辦法!她將加密後的 "密文"蘋果 與 只有她跟白雪公主才有的 "金鑰" 加入我們先前提到的雜湊果汁機,打出了 "MAC" 這個東西
在傳送秘密寶箱時,也把 MAC 一起傳過去
最後白雪公主收到 "密文" 蘋果後,也跟著金鑰丟到果汁機打一波,看產生的結果跟仙杜瑞拉給的 MAC 比對看看是不是一樣的~
如果是一樣的就可以安心吃蘋果啦~她們的友誼又更上一層樓了~這是可喜可賀呢~
訊息鑑別碼 MAC 可以想像是由金鑰和密文經過特定演算法的雜湊碼, MAC 的產生方式有
加密或產生雜湊值的工具有很多,例如 crypto-js,都是很方便使用的工具,大家可以再去試試看瞜!
用 npm 安裝 crypto-js
npm install crypto-js
產生 HMAC
const CryptoJS = require("crypto-js");
console.log(CryptoJS.HmacSHA1("Message", "Key").toString()
);
參考資料:
感謝各位的閱讀~明天見啦!掰掰~~