[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 코드를 사용해보세요. 암호화된 파일을 읽어들이고 복호화하여 원하는 데이터를 얻을 수 있습니다.
참고 자료: