Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발자 되버리기

Swift4 에서 AES256-CBC 암호화하기 or 풀기 본문

개발/Swift

Swift4 에서 AES256-CBC 암호화하기 or 풀기

구본익 2019. 1. 26. 21:05

서버에서 로그인기능을 구현하면 사용하는 서버가 SSL을 사용 않는다면  암호화기능을 구현하는 것이 좋습니다.


만약 SSL이 적용되어 있는 서버가 아니라면 전송되는 패킷에 사용자의 아이디와 패스워드가 고스란히 노출될 가능성이 있습니다.


그렇기에 SSL을 쓰지 않는다면 클라이언트 혹은 서버에서 암호화 기능을 구현해야 합니다.


이번 포스팅에서는 AES256-CBC를 이용하여 암호화를 진행하고 푸는 것을 쓰고자 합니다.


깃허브에 업로드 되어있습니다! https://github.com/Koobonik/AES256-CBC






앱이 완성되고 예제를 실행한 화면입니다.





소스코드 입니다.


import UIKit


class ViewController: UIViewController {

    @IBOutlet weak var decrypedTextBox: UITextField!

    @IBOutlet weak var encrypedText: UITextField!

    @IBOutlet weak var inputEncrypedTextBox: UITextField!

    @IBOutlet weak var outputDecrypedText: UITextField!

    

    let defaultKey : String = "abcdefghijklmnopqrstuvwxyz123456" // default key 32

    // Default iv is 0123456789101112

    // You can see iv in AES.swift file

    override func viewDidLoad() {

        super.viewDidLoad()

        

    }


    // 암호화하기 버튼

    @IBAction func encryped_button(_ sender: UIButton) {

        // AES.swift에 있는 기능 이용, 사용자가 입력한 텍스트를 암호화한다.

        encrypedText.text = AES256CBC.encryptString(decrypedTextBox.text!, password: defaultKey)!

    }

    

    // 암호화풀기 버튼

    @IBAction func decryped_button(_ sender: UIButton) {

        outputDecrypedText.text = AES256CBC.decryptString(inputEncrypedTextBox.text!, password: defaultKey)!

    }

}



설명을 하면 

AES 암호화를 할때 iv 값과 key 값이 있습니다.

iv 값은 AES.swift 파일에 이미 입력이 되어있습니다. ( iv : 0123456789101112)

key 값은 위에 소스코드에서 확인 가능합니다. 32글자로 되어 있습니다. abcd...456



1. 사용자가 텍스트박스에 자신이 암호화하고자 하는 텍스트를 입력합니다.

2. 암호화하기' 버튼을 누릅니다.

3. 그 밑에 암호화된 텍스트가 나옵니다.


4. 암호화된 텍스트를 복사합니다.

5. '암호화 된 텍스트를 붙여넣어주세요' 라는 텍스트 필드에 암호화된 텍스트를 붙여넣습니다.

6. '암호화풀기' 버튼을 누릅니다.

7. 아래에 기존에 사용자가 입력했던 텍스트가 나옵니다.




Comments