[swift] Swift에서의 파일 및 폴더 암호화 방법

Swift에서 파일 및 폴더를 암호화하는 방법은 개인 정보 보호 및 데이터 보안을 강화하기 위해 중요합니다. 이 글에서는 Swift에서 파일 및 폴더를 암호화하는 방법을 알아보겠습니다.

1. 파일 암호화

Swift에서 파일을 암호화하기 위해서는 다음 단계를 따르세요:

단계 1: 파일 읽기

암호화할 파일을 읽어옵니다. 이 단계에서는 파일을 읽어서 메모리에 로드해야 합니다.

let fileURL = Bundle.main.url(forResource: "file", withExtension: "txt")
let fileContents = try String(contentsOf: fileURL)

단계 2: 암호화 키 생성

암호화 키를 생성하기 위해 CryptoKit을 사용할 수 있습니다. CryptoKit을 임포트하고 적절한 키를 생성합니다.

import CryptoKit

let key = SymmetricKey(size: .bits256)

단계 3: 파일 암호화

생성된 키를 사용하여 파일을 암호화합니다.

let encryptedData = try AES.GCM.seal(fileContents.data(using: .utf8)!, using: key).combined

단계 4: 암호화된 파일 저장

암호화된 데이터를 파일로 저장합니다.

let encryptedFileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("encrypted_file.txt")
try encryptedData.write(to: encryptedFileURL)

2. 폴더 암호화

Swift에서 폴더를 암호화하기 위해서는 해당 폴더의 파일들을 암호화하는 방법을 사용할 수 있습니다. 폴더 내의 모든 파일을 암호화하고, 필요에 따라 폴더 구조를 유지하는 방식으로 진행됩니다.

단계 1: 폴더 내 파일 리스트 가져오기

암호화할 폴더 내의 파일 리스트를 가져옵니다.

let folderURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let fileURLs = try FileManager.default.contentsOfDirectory(at: folderURL, includingPropertiesForKeys: nil)

단계 2: 파일 암호화

각 파일을 암호화합니다. 앞서 설명한 파일 암호화 과정을 사용하면 됩니다.

단계 3: 암호화된 파일 저장

암호화된 파일을 저장합니다. 폴더 구조가 유지되도록 암호화된 파일을 해당 폴더에 저장합니다.

for fileURL in fileURLs {
   let fileContents = try String(contentsOf: fileURL)
   
   // 파일 암호화 과정
   
   let encryptedFileURL = folderURL.appendingPathComponent(fileURL.lastPathComponent)
   try encryptedData.write(to: encryptedFileURL)
}

이로써 폴더 내의 모든 파일이 암호화되어 저장됩니다.

참고 자료