파이선에서 문자열(str)의 기본 인코딩은 UTF-8
인데, b'hello'
와 같이 문자열을 바이트 객체로 만들면 각 문자를 ASCII
코드로 저장합니다.
보통 문자열을 UTF-8
이 아닌 ASCII
코드로 처리하고 싶을 때 바이트 객체를 사용합니다.
파이썬 3 의 문자타입
- bytes : raw 8 bit
- str : unicode 문자
문자 타입이 분리되어 있는 탓에 파이썬 코드에서 일반적으로 다음 두 가지 상황에 부딪힘
- UTF-8(or 다른 인코딩)으로 인코드된 문자인 raw 8 bit 값을 처리하려는 상황
- 인코딩이 없는 유니코드 문자를 처리하려는 상황
pw = 'test' pw.encode() print(pw) >> b'test'
pw = 'test' bytes(str,'utf-8') print(pw) >> b'test'
- encode : 인코딩 <-> deconde : 디코드
- hamc : 메세지 인증을 위한 키 해싱 ( hashing authauge message code )
- hashlib : 보안 해시 함수를 제공하는 Python 모듈입니다.
- digest : 주어진 비밀 key 와 digest 로 msg의 다이제스틀 반환합니다.
hmac(key, msg, digest).digest()
- new() : 새로운 hmac 객체를 반환한다. key는 비밀 키를 제공하는 바이트열이나 바이트 배열(bytearray) 객체입니다.
>
or
+
같은 연산자에 bytes 와 str 인스턴스를 함께 사용할수 없다.rb
or wb
)로 오픈