base64 모듈의 기능은 이진 데이터를 일반 텍스트 프로토콜을 사용한 전송에 적합한 ASCII 하위 집합으로 변환합니다.
인코딩 및 디코딩 기능은 Base16, Base32 및 Base64 알고리즘과 사실상의 표준 Ascii85 및 Base85 인코딩을 정의하는 RFC 3548의 사양을 구현합니다. RFC 3548 인코딩은 바이너리 데이터를 인코딩하는 데 적합하므로 이메일로 안전하게 보내거나 URL의 일부로 사용하거나 HTTP POST 요청의 일부로 포함할 수 있습니다.
이 모듈에서 제공하는 최신 인터페이스는 바이트열류 객체를 ASCII 바이트로 인코딩하고 바이트열류 객체 또는 ASCII를 포함하는 문자열을 바이트열로 디코딩합니다. RFC 3548(일반, URL 및 파일 시스템 안전)에 정의된 다음 base-64 알파벳이 지원됩니다.
현대적인 인터페이스는 다음을 제공합니다 -
base64.b64encode(): Base64를 사용하여 바이트열류 객체를 인코딩하고 인코딩된 바이트를 반환합니다.
base64.b64decode(): Base64로 인코딩된 바이트열류 객체 또는 ASCII 문자열 s를 디코딩하고 디코딩된 바이트를 반환합니다.
bse64 모듈의 b64encode() 및 base64desode() 함수를 보여주기 위해 먼저 Python 문자열을 인코딩하겠습니다.
>>> import base64 >>> string = 'Python programming' >>> enc_string = string.encode() >>> enc_string b'Python programming'
이 바이트 객체는 b64encode() 함수를 사용하여 인코딩됩니다.
>>> b64_estring = base64.b64encode(enc_string) >>> b64_estring b'UHl0aG9uIHByb2dyYW1taW5n'
이 바이트 개체에서 문자열을 가져오기 위해 decode() 함수를 사용할 수 있습니다.
>>> dec_string = b64_estring.decode() >>> dec_string 'UHl0aG9uIHByb2dyYW1taW5n'
encode() 함수는 바이트 객체를 반환합니다.
>>> b1 = dec_string.encode() >>> b1 b'UHl0aG9uIHByb2dyYW1taW5n'
b64decode() 함수를 사용하여 디코딩하려면 -
>>> d = base64.b64decode(b1) >>> d b'Python programming'
마지막으로 위의 바이트 개체를 디코딩하여 원래 문자열을 얻습니다.
>>> originalstring = d.decode() >>> originalstring 'Python programming'
base64 알파벳은 + 및 /를 사용할 수 있습니다. URL에서 사용되는 경우 해당 문자를 대체하려면 대체 인코딩을 사용해야 합니다.
urlsafe_b64encode(): URL 및 파일 시스템 안전 알파벳을 사용하여 바이트열류 객체를 인코딩합니다. 이 알파벳은 표준 Base64 알파벳 대신 + 및 _를 대체하고 인코딩된 바이트를 반환합니다.
urlsafe_b64decode(): URL 및 파일 시스템 안전 알파벳을 사용하여 바이트열류 객체 또는 ASCII 문자열을 디코딩합니다. 이 알파벳은 표준 Base64 알파벳 대신에 + 및 _를 대체하고 디코딩된 바이트를 반환합니다.
레거시 인터페이스는 파일 개체를 인코딩 및 디코딩하는 기능을 제공합니다. -
base64.encode(입력, 출력): 이진 입력 파일의 내용을 인코딩하고 결과 base64 인코딩 데이터를 출력 파일에 씁니다. 입력 및 출력은 파일 개체여야 합니다. input.read()가 빈 바이트열 객체를 반환할 때까지 입력을 읽습니다.
base64.decode(입력, 출력): 바이너리 입력 파일의 내용을 디코딩하고 결과 바이너리 데이터를 출력 파일에 씁니다. 입력 및 출력은 파일 개체여야 합니다. input.readline()이 빈 바이트열 객체를 반환할 때까지 입력을 읽습니다.
먼저 'wb' 모드를 사용하여 파일을 만듭니다.
>>> f1 = open('file.txt','wb') >>> f1.write('Simple is better than complex'.encode()) >>> f1.close()
이제 base64.encode 메소드를 사용하여 파일을 인코딩하십시오.
>>> f1 = open('file.txt','rb') >>> f2 = open('file.dat','wb') >>> base64.encode(f1,f2) >>> f1.close() >>> f2.close()
fil.dat는 메모장에서 열면 다음 내용을 표시합니다.
U2ltcGxlIGlzIGJldHRlciB0aGFuIGNvbXBsZXg=
filenew.txt에서 file.dat를 디코딩하려면 decode() 함수를 사용하십시오.
>>> f1 = open('file.dat','rb') >>> f2 = open('filenew.txt','wb') >>> base64.decode(f1,f2) >>> f1.close() >>> f2.close()
원본 텍스트는 filenew.txt에서 볼 수 있어야 합니다.