在 Swift 幫 SymmetricKey 加鹽

2023/02/21閱讀時間約 1 分鐘
本篇的 sample code 都需要使用 Apple 的 CryptoKit
import CryptoKit

程式碼

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

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

String 和 Date 都能用一樣的方法轉換成 Data
生成一個基底密鑰
這個 Key 預期會給 256-bit 的 AES.GCM 使用,因此這邊都用 .bits256
let originalKey = SymmetricKey(size: .bits256)

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

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

如何使用

例如要加密一個信用卡號碼時,在呼叫 AES.GCM 的 seal 的方法時傳入加鹽生成的 key 即可:
generated by https://ray.so/
vc7
vc7
留言0
查看全部
發表第一個留言支持創作者!
從 Google News 追蹤更多 vocus 的最新精選內容