在 Swift 幫 SymmetricKey 加鹽

更新於 發佈於 閱讀時間約 2 分鐘

本篇的 sample code 都需要使用 Apple 的 CryptoKit

import CryptoKit

程式碼

為了增加 SymmetricKey (對稱密鑰)的獨特性和安全性,可以透過「加鹽」的手法在生成的時候加入其他的值。例如會員 ID 以及當下時間等具有獨特性的資料。

raw-image

將需要結合的資料轉換成 Data

String 和 Date 都能用一樣的方法轉換成 Data

生成一個基底密鑰

這個 Key 預期會給 256-bit 的 AES.GCM 使用,因此這邊都用 .bits256

let originalKey = SymmetricKey(size: .bits256)

用 SHA256 將三者結合並重新生成

透過 SHA256 的雜湊方法,將三者結合再一起就可以用來生成新的 SymmetricKey。

如何使用

例如要加密一個信用卡號碼時,在呼叫 AES.GCM 的 seal 的方法時傳入加鹽生成的 key 即可:

raw-image



留言
avatar-img
留言分享你的想法!
avatar-img
vc7的沙龍
2會員
4內容數
vc7的沙龍的其他內容
2023/05/21
最近一直在推特上看到這本,加上有看到一些巴菲特今年的投資組合的推文就來讀讀。許多書序都只提到價值投資,實際讀過之後發現除此之外還有更多內容。
2023/05/21
最近一直在推特上看到這本,加上有看到一些巴菲特今年的投資組合的推文就來讀讀。許多書序都只提到價值投資,實際讀過之後發現除此之外還有更多內容。
2023/05/16
這是一本涵蓋範圍很廣的一本書,從身為主管時的心態為何,接著以「為了達成組織和團隊的目的」為核心,分章節談如何挑選成員、團隊構成、面對問題和衝突、自我和成員的成長、動力等等議題。
2023/05/16
這是一本涵蓋範圍很廣的一本書,從身為主管時的心態為何,接著以「為了達成組織和團隊的目的」為核心,分章節談如何挑選成員、團隊構成、面對問題和衝突、自我和成員的成長、動力等等議題。
2023/03/01
如何將對稱密鑰轉換成字串,以及如何從字串反向生成原有的對稱密鑰
Thumbnail
2023/03/01
如何將對稱密鑰轉換成字串,以及如何從字串反向生成原有的對稱密鑰
Thumbnail
看更多
你可能也想看
Thumbnail
在進行開發工作時,可能會使用不同的 Git 帳號做登入和推送的情形,例如: 公司的 Git 帳號和個人的帳號,這樣做的好處是為了確保開發工作能清楚劃分,所以需要做切換帳號的動作,特別是在不同的專案間切換 commit 的對象,因此有了這篇文紀錄這個過程。
Thumbnail
在進行開發工作時,可能會使用不同的 Git 帳號做登入和推送的情形,例如: 公司的 Git 帳號和個人的帳號,這樣做的好處是為了確保開發工作能清楚劃分,所以需要做切換帳號的動作,特別是在不同的專案間切換 commit 的對象,因此有了這篇文紀錄這個過程。
Thumbnail
如何將對稱密鑰轉換成字串,以及如何從字串反向生成原有的對稱密鑰
Thumbnail
如何將對稱密鑰轉換成字串,以及如何從字串反向生成原有的對稱密鑰
Thumbnail
為了增加 SymmetricKey (對稱密鑰)的獨特性和安全性,可以透過「加鹽」的手法在生成的時候加入其他的值。
Thumbnail
為了增加 SymmetricKey (對稱密鑰)的獨特性和安全性,可以透過「加鹽」的手法在生成的時候加入其他的值。
Thumbnail
坊間談論區塊鏈技術的文章影片中,有著諸多不夠精確而容易偏差的誤解。這篇文章會秉著科學精神,從原理出發,一步步推論各種議題的真實樣貌。
Thumbnail
坊間談論區塊鏈技術的文章影片中,有著諸多不夠精確而容易偏差的誤解。這篇文章會秉著科學精神,從原理出發,一步步推論各種議題的真實樣貌。
Thumbnail
本期要介紹的是加密貨幣的相關名詞,以下的許多名詞經常出現在商業週刊、經濟日報、投資相關書籍、新聞報導裡。每期的內容不會一次介紹幾十個名詞,讓讀者記不得,希望讀者能運用每期學習的機會,來讀懂各式商業報刊雜誌。 ※為方便區分,粗體字為專有名詞或是備註 加密&解密 金鑰:加密機制的暱稱,用於還原密文。
Thumbnail
本期要介紹的是加密貨幣的相關名詞,以下的許多名詞經常出現在商業週刊、經濟日報、投資相關書籍、新聞報導裡。每期的內容不會一次介紹幾十個名詞,讓讀者記不得,希望讀者能運用每期學習的機會,來讀懂各式商業報刊雜誌。 ※為方便區分,粗體字為專有名詞或是備註 加密&解密 金鑰:加密機制的暱稱,用於還原密文。
Thumbnail
基礎密碼學中主要分成三種加密方式:對稱加密(Symmetric Encryption)、非對稱加密(Asymmetric Encryption)、雜湊函數(Hash Function)。 再說明這兩個加密方式前,我們先來說說什麼是密鑰! 什麼是密鑰 對稱加密 用同一把密鑰來加密及解密 非對稱加密
Thumbnail
基礎密碼學中主要分成三種加密方式:對稱加密(Symmetric Encryption)、非對稱加密(Asymmetric Encryption)、雜湊函數(Hash Function)。 再說明這兩個加密方式前,我們先來說說什麼是密鑰! 什麼是密鑰 對稱加密 用同一把密鑰來加密及解密 非對稱加密
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News