[swift] 파일 암호화 풀기

먼저, 암호화된 파일을 읽어들이기 위해 파일 읽기 작업을 수행해야 합니다. 다음은 암호화 파일을 읽는 코드입니다.

if let encryptedData = FileManager.default.contents(atPath: "encryptedfile.txt") {
    // 파일을 읽는 작업
} else {
    print("암호화된 파일을 찾을 수 없습니다.")
}

다음으로, 암호화된 데이터를 복호화해야 합니다. Swift에는 여러 가지 암호화 알고리즘을 사용할 수 있습니다. 예를 들어, AES-256을 사용하여 암호화된 파일을 복호화할 수 있습니다.

func decryptData(encryptedData: Data, key: String, iv: String) -> Data? {
    guard let data = Data(base64Encoded: key) else {
        return nil
    }
    let cryptKey = data.withUnsafeBytes { (pointer: UnsafeRawBufferPointer) -> [UInt8] in
        return Array(pointer)
    }

    guard let ivData = Data(base64Encoded: iv) else {
        return nil
    }
    let cryptIv = ivData.withUnsafeBytes { (pointer: UnsafeRawBufferPointer) -> [UInt8] in
        return Array(pointer)
    }

    if let decrypted = try? AES(key: cryptKey, blockMode: CBC(iv: cryptIv), padding: .noPadding).decrypt(encryptedData.bytes) {
        return Data(bytes: decrypted, count: decrypted.count)
    } else {
        return nil
    }
}

위의 코드에서 encryptedData, key, iv는 복호화할 파일의 암호화된 데이터, 암호화에 사용된 키, 초기 벡터입니다. 이 코드는 CryptoSwift 라이브러리를 사용하여 AES-256 복호화를 수행합니다. 따라서 CryptoSwift 라이브러리를 프로젝트에 추가해야 합니다.

마지막으로, 파일을 복호화된 데이터로 저장해야 합니다. 다음은 복호화된 데이터를 파일로 저장하는 코드입니다.

if let decryptedData = decryptData(encryptedData: encryptedData, key: "encryption_key", iv: "initial_vector") {
    if let decryptedString = String(data: decryptedData, encoding: .utf8) {
        try? decryptedString.write(toFile: "decryptedfile.txt", atomically: true, encoding: .utf8)
        print("파일이 성공적으로 복호화되었습니다.")
    }
} else {
    print("파일을 복호화할 수 없습니다.")
}

위의 코드에서 “encryption_key”와 “initial_vector”는 암호화할 때 사용된 키와 초기 벡터로 바꿔야 합니다. 또한, 복호화된 데이터를 다시 파일로 저장하기 전에 원하는 형식으로 변환할 수 있습니다.

이제 파일 암호화를 푸는 Swift 코드를 사용해보세요. 암호화된 파일을 읽어들이고 복호화하여 원하는 데이터를 얻을 수 있습니다.

참고 자료: