2023-03-01|閱讀時間 ‧ 約 2 分鐘

用 Swift 將對稱密鑰轉換成字串

    對稱密鑰 (Symmetric Key) 可以用在像是 AES-GCM 這類的演算法。

    生成密鑰

    import CryptoKit
    let key = SymmetricKey(size: .bits256)
    先透過 CryptoKitSymmetricKey 建立一個密鑰

    轉換成字串

    因為 SymmetricKey 並無支援轉換成字串,因此要進行的步驟就是先把密鑰轉換成 Data 型態,接著就可以轉換成字串了。
    generated with ray.so
    generated with ray.so
    印出 keyString 就會像是這樣子的字串:
    MC65mVLrR8C8gfMVhSOWUyFpMafQbe4MgU9dk07BclE=

    轉換成 Data
    .withUnsafeBytes({ Data($0) })
    可以把密鑰轉換成 Data ,用另外一個寫法也可以:
    .withUnsafeBytes(Data.init(_:))

    將 Data 轉換成 String
    .base64EncodedString()
    這邊就沒什麼特別的了,就是把 Data 編碼成字串

    轉換回 SymmetricKey

    反向的話就從字串轉換成 Data ,接著就可以拿這個 Data 物件生成 SymmetricKey 即可。
    generated with ray.so
    由於 Data(base64Encoded:) 的結果是 Optional ,所以在傳遞給 SymmetricKey 用來初始化前需要用 if-let 或 guard-let 。
    以上!
    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.