도래울

cryptoSwift encrypt decrypt aes/ecb/pkcs7 본문

개발/iOS

cryptoSwift encrypt decrypt aes/ecb/pkcs7

도래울 2016. 11. 16. 17:36

import CryptoSwift


let encryptKey = "ket"

let iv = "iv"



let ret = try! "password".aesEncrypt(encryptKey, iv: iv)

print("암호화 결과 : \(ret)")

let decrypt = try! ret.aesDecrypt(encryptKey, iv: iv)

print("복호화 결과 : \(decrypt)")



extension String {

    func aesEncrypt(key: String, iv: String) throws -> String{

        let data = self.dataUsingEncoding(NSUTF8StringEncoding)

        let enc = try AES(key: key, iv: iv, blockMode:.ECB, padding: PKCS7()).encrypt(data!.arrayOfBytes())

        let encData = NSData(bytes: enc, length: Int(enc.count))

        let base64String: String = encData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0));

        let result = String(base64String)

        return result

    }

    

    func aesDecrypt(key: String, iv: String) throws -> String {

        let data = NSData(base64EncodedString: self, options: NSDataBase64DecodingOptions(rawValue: 0))

        let dec = try AES(key: key, iv: iv, blockMode: .ECB, padding: PKCS7()).decrypt(data!.arrayOfBytes())

        let decData = NSData(bytes: dec, length: Int(dec.count))

        let result = NSString(data: decData, encoding: NSUTF8StringEncoding)

        return String(result!)

    }

}



'개발 > iOS' 카테고리의 다른 글

APNS 토큰 방식  (0) 2016.11.25
Xcode 8 주석 단축키 동작 안될때  (0) 2016.11.24
ios bitcode error  (0) 2016.11.16
The executable was signed with invalid entitlements 에러  (0) 2016.11.10
Changing navigation bar color in Swift  (0) 2016.11.09
Comments