반응형
AES 암복호화
- CryptoSwift 라이브러리 Pod 추가
- 추가 : pod 'CryptoSwift', '~> 1.3.8'
- 설치 : pod install
- 링크 : https://github.com/krzyzanowskim/CryptoSwift
- key값의 길이에 따라 AES128, AES192, AES256 으로 구분됨
- AES128 : 키값 16bytes
- AES192 : 키값 24bytes
- AES256 : 키값 32bytes
예제 코드(AES256)
import Foundation
import CryptoSwift
//라이브러리 : https://github.com/krzyzanowskim/CryptoSwift
//pod 'CryptoSwift', '~> 1.3.8'
class AES256Util {
//키값 32바이트: AES256(24bytes: AES192, 16bytes: AES128)
private static let SECRET_KEY = "01234567890123450123456789012345"
private static let IV = "0123456789012345"
static func encrypt(string: String) -> String {
guard !string.isEmpty else { return "" }
return try! getAESObject().encrypt(string.bytes).toBase64() ?? ""
}
static func decrypt(encoded: String) -> String {
let datas = Data(base64Encoded: encoded)
guard datas != nil else {
return ""
}
let bytes = datas!.bytes
let decode = try! getAESObject().decrypt(bytes)
return String(bytes: decode, encoding: .utf8) ?? ""
}
private static func getAESObject() -> AES{
let keyDecodes : Array<UInt8> = Array(SECRET_KEY.utf8)
let ivDecodes : Array<UInt8> = Array(IV.utf8)
let aesObject = try! AES(key: keyDecodes, blockMode: CBC(iv: ivDecodes), padding: .pkcs5)
return aesObject
}
}
반응형
'아이폰' 카테고리의 다른 글
Swift Outline UILabel (0) | 2021.11.20 |
---|---|
Swift Dispatch async, asyncAfter (0) | 2021.11.20 |
Swift Post 통신, VO <-> Json(Codable 사용) (0) | 2021.11.18 |
Swift Alert, Confirm(얼럿, 컨펌 확인창) (0) | 2021.11.18 |
Swift ViewController(뷰컨트롤러) 띄우기 (0) | 2021.11.18 |
최근댓글