技術

SwiftのSecurity Frameworkを利用して暗号化と復号を実装してみた

どうも、フリーランスのITエンジニア兼ブロガー兼投資家のKerubitoです。

Swiftで暗号化や復号をさくっとやりたい。

ありますよね。

手段としてはCryptKitとSecurity Frameworkの2択が思い浮かぶかと思いますが、今回はSecurity Frameworkを使ってみました。

・Swiftバージョン:5
・Xcodeバージョン:13.0
・使用デバイス:iPhoneX(15.0)

Security Frameworkとは?

Security Frameworkはアプリが管理するデータを保護してくれるフレームワークです。

機能が多岐にわたるためここでは割愛しますが、サーバとの公開鍵、秘密鍵、証明書のやりとりでよく使われます。

今回はちょっと特殊な使い方にはなりますが、テキストを暗号化し、それを復号することをやってみたいと思います。

CryptKitでもできるのですが、公開鍵暗号方式に対応しているのはSecurity Frameworkだけ。

なので、やってみる価値ありかと。

流れとしては、

①秘密鍵と公開鍵を作る
②①で作った公開鍵で暗号化
③①で作った秘密鍵で復号

といった感じです。

秘密鍵と公開鍵を作る

まずは秘密鍵と公開鍵を作ります。

はじめに秘密鍵を作ります。

次に秘密鍵から公開鍵を作ります。

公開鍵を作る際にすでに作成済みの秘密鍵を取得します。

テキストを暗号化する

暗号化の本体です。

 

暗号化されたテキストを復号する

次は復号です。

暗号化&復号のメインの処理は以上です。

画面と呼び出し部分

おまけとして、利用する側がこちら。

まずSwifitUIで作られた画面。

適当に作ったmodel。

 

実行結果

実行するとこのようになります。

SwiftのSecurity Frameworkで暗号化と復号化SwiftのSecurity Frameworkで暗号化と復号化

ソースはこちら。

https://github.com/Kerubito0/Crypto.git

以上、楽しい開発ライフを!

-技術

© 2021 Kerubitoのブログ