Study Record

[암호] 파이썬 암호기술 기본 본문

암호

[암호] 파이썬 암호기술 기본

초코초코초코 2021. 12. 1. 17:06
728x90

1. Cryptodome/Cryptodomex Package 

- https://pycryptodome.readthedocs.io/en/latest/src/introduction.html

pycrypto 라이브러리를 개선하여 저수준 암호화 primitive로 구성된 독립적인 python 패키지이다.

- Python 2.6/2.7, Python 3.4 이상에서 지원한다.

 

설치 방법

(CMD)

# pip3 install pycryptodome

# pip3 install pycryptodomex

 

(PyCharm)

File > Settings > Project > Project Interpreter > '+' > 'pycryptodome' 검색 후 설치

 

2. 기본 사용

☞ byte 표현

date = b'Hello world'

→ 문자열을 byte 형태로 date 에 저장한다.

'Hello world'.encode('UTF-8')

→ 'UTF-8' 형식으로 인코딩(byte)한다.

즉, 파이썬은 기본 UTF-8 로 되어있기 때문에 b'Hello world''Hello world'.encode('UTF-8') 는 같은 의미이다.

open('filename.bin', 'wb')

→ 'wb' 에서 b의 의미는 byte 형태로 연다는 것이다. 

 

☞ 아스키코드

ASCII 는 7비트 인코딩으로, 33개의 출력 불가능한 제어문자들과 공백을 비롯한 95개의 출력 가능한 문자(대문자, 소문자, 숫자, 특수문자, 공백)들로 이루어져있다.

ex) t => 01110100 : 0x74 = hex(ord('t'))

ord('A') : 문자 -> 십진수

chr(65) : 십진수 -> 문자

hex(65) : 숫자 -> 16진수

bin(30) : 숫자 -> 2진수

rjust(10) : 10칸을 잡고 오른쪽 정렬

ljust(13) : 13칸을 잡고 왼쪽 정렬

 

☞ xor 연산

xor 연산은 % 2 (mod 2) 연산과 같다.

"A xor B xor B = A" 성질을 이용하여 A는 문자열, B는 키값으로 암호화, 복호화에 사용된다.

a ^ b : a xor b

 

 

728x90