Python Language
base64 모듈
수색…
소개
기본 64 인코딩은 기수 64를 사용하여 2 진을 ASCII 문자열 형식으로 인코딩하는 일반적인 방법을 나타냅니다. base64 모듈은 표준 라이브러리의 일부로 Python과 함께 설치됩니다. 바이트 및 문자열에 대한 이해는이 주제에 중요하며 여기에서 검토 할 수 있습니다. 이 항목에서는 Base64 모듈의 다양한 기능과베이스 수를 사용하는 방법에 대해 설명합니다.
통사론
- base64.b64encode (s, altchars = None)
- base64.b64decode (s, altchars = None, validate = False)
- base64.standard_b64encode (s)
- base64.standard_b64decode (s)
- base64.urlsafe_b64encode (s)
- base64.urlsafe_b64decode (s)
- base64.b32encode (s)
- base64.b32decode (s)
- base64.b16encode (s)
- base64.b16decode (s)
- base64.a85encode (b, foldspaces = False, wrapcol = 0, 패드 = False, adobe = False)
- base64.a85decode (b, foldpaces = False, adobe = False, ignorechars = b '\ t \ n \ r \ v')
- base64.b85encode (b, pad = False)
- base64.b85decode (b)
매개 변수
매개 변수 | 기술 |
---|---|
base64.b64encode(s, altchars=None) | |
에스 | 바이트와 같은 객체 |
옹벽 | Base64 알파벳을 만들 때 '+'및 '='문자를 바꿀 문자의 길이가 2+ 이상인 바이트 모양의 개체입니다. 추가 문자는 무시됩니다. |
base64.b64decode(s, altchars=None, validate=False) | |
에스 | 바이트와 같은 객체 |
옹벽 | Base64 알파벳을 만들 때 '+'및 '='문자를 바꿀 문자의 길이가 2+ 이상인 바이트 모양의 개체입니다. 추가 문자는 무시됩니다. |
유효성을 검사하다 | valide가 True이면 일반 Base64 알파벳 또는 대체 알파벳이 아닌 문자는 패딩 검사 전에 무시 되지 않습니다. |
base64.standard_b64encode(s) | |
에스 | 바이트와 같은 객체 |
base64.standard_b64decode(s) | |
에스 | 바이트와 같은 객체 |
base64.urlsafe_b64encode(s) | |
에스 | 바이트와 같은 객체 |
base64.urlsafe_b64decode(s) | |
에스 | 바이트와 같은 객체 |
b32encode(s) | |
에스 | 바이트와 같은 객체 |
b32decode(s) | |
에스 | 바이트와 같은 객체 |
base64.b16encode(s) | |
에스 | 바이트와 같은 객체 |
base64.b16decode(s) | |
에스 | 바이트와 같은 객체 |
base64.a85encode(b, foldspaces=False, wrapcol=0, pad=False, adobe=False) | |
비 | 바이트와 같은 객체 |
foldspaces | foldspaces가 True이면 4 개의 연속 공백 대신 'y'문자가 사용됩니다. |
wrapcol | 개행 전에 숫자 문자 (0은 개행을 의미하지 않음) |
인주 | pad가 True이면 인코딩 전에 바이트가 4의 배수로 채워집니다. |
어도비 벽돌 | adobe가 True이면 인코딩 된 코드는 Adobe 제품에서 사용되는 '<~'및 ''~> '로 프레임됩니다 |
base64.a85decode(b, foldspaces=False, adobe=False, ignorechars=b'\t\n\r\v') | |
비 | 바이트와 같은 객체 |
foldspaces | foldspaces가 True이면 4 개의 연속 공백 대신 'y'문자가 사용됩니다. |
어도비 벽돌 | adobe가 True이면 인코딩 된 코드는 Adobe 제품에서 사용되는 '<~'및 ''~> '로 프레임됩니다 |
ignorechars | 인코딩 프로세스에서 무시할 바이트와 유사한 문자 객체 |
base64.b85encode(b, pad=False) | |
비 | 바이트와 같은 객체 |
인주 | pad가 True이면 인코딩 전에 바이트가 4의 배수로 채워집니다. |
base64.b85decode(b) | |
비 | 바이트와 같은 객체 |
비고
파이썬 3.4가 나올 때까지 base64 인코딩 및 디코딩 기능은 bytes
또는 bytearray
유형에서만 작동했습니다. 이제이 함수는 모든 바이트와 같은 객체를 허용 합니다 .
Base64 인코딩 및 디코딩
스크립트에 base64 모듈을 포함하려면 먼저 가져와야합니다.
import base64
base64 인 코드 및 디코드 함수는 모두 바이트 형 객체를 필요로 합니다 . 우리의 문자열을 바이트로 가져 오려면, 우리는 파이썬의 내장 된 encode 함수를 사용하여 문자열을 인코딩해야합니다. 가장 일반적으로는 UTF-8
인코딩 (다른 문자와 언어를 포함)이 표준 인코딩 그러나 전체 목록을 찾을 수 있습니다, 사용 여기 공식 파이썬 문서에. 다음은 문자열을 바이트로 인코딩하는 예제입니다.
s = "Hello World!"
b = s.encode("UTF-8")
마지막 행의 출력은 다음과 같습니다.
b'Hello World!'
b
접두사는 값이 바이트 객체임을 나타내는 데 사용됩니다.
이러한 바이트를 Base64로 인코딩하려면 base64.b64encode()
함수를 사용합니다.
import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
print(e)
그 코드는 다음을 출력합니다 :
b'SGVsbG8gV29ybGQh'
이것은 여전히 bytes 객체에 있습니다. 이 바이트들로부터 문자열을 얻기 위해 우리는 UTF-8
인코딩과 함께 파이썬의 decode()
메소드를 사용할 수 있습니다 :
import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
s1 = e.decode("UTF-8")
print(s1)
출력은 다음과 같습니다.
SGVsbG8gV29ybGQh
문자열을 인코딩 한 다음 디코드하려면 base64.b64decode()
메서드를 사용할 수 있습니다.
import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base64 Encode the bytes
e = base64.b64encode(b)
# Decoding the Base64 bytes to string
s1 = e.decode("UTF-8")
# Printing Base64 encoded string
print("Base64 Encoded:", s1)
# Encoding the Base64 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base64 bytes
d = base64.b64decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)
예상했던대로 출력은 원래 문자열이됩니다.
Base64 Encoded: SGVsbG8gV29ybGQh
Hello World!
Base32 인코딩 및 디코딩
base64 모듈은 또한 Base32 용 인코딩 및 디코딩 기능을 포함합니다. 이 함수는 Base64 함수와 매우 유사합니다.
import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base32 Encode the bytes
e = base64.b32encode(b)
# Decoding the Base32 bytes to string
s1 = e.decode("UTF-8")
# Printing Base32 encoded string
print("Base32 Encoded:", s1)
# Encoding the Base32 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base32 bytes
d = base64.b32decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)
그러면 다음과 같은 출력이 생성됩니다.
Base32 Encoded: JBSWY3DPEBLW64TMMQQQ====
Hello World!
Base16 인코딩 및 디코딩
Base64 모듈에는 Base16의 인코딩 및 디코딩 기능도 포함되어 있습니다. 기본 16은 가장 일반적으로 16 진수 라고합니다. 이 함수는 Base64 및 Base32 함수와 매우 유사합니다.
import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base16 Encode the bytes
e = base64.b16encode(b)
# Decoding the Base16 bytes to string
s1 = e.decode("UTF-8")
# Printing Base16 encoded string
print("Base16 Encoded:", s1)
# Encoding the Base16 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base16 bytes
d = base64.b16decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)
그러면 다음과 같은 출력이 생성됩니다.
Base16 Encoded: 48656C6C6F20576F726C6421
Hello World!
ASCII85 인코딩 및 디코딩
Adobe는 ASCII85 라는 자체 인코딩을 만들었습니다.이 인코딩은 Base85 와 비슷하지만 그 차이점이 있습니다. 이 인코딩은 Adobe PDF 파일에서 자주 사용됩니다. 이 함수는 Python 3.4 버전에서 발표되었습니다. 그렇지 않으면, base64.a85encode()
및 base64.a85encode()
함수는 이전과 유사합니다.
import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# ASCII85 Encode the bytes
e = base64.a85encode(b)
# Decoding the ASCII85 bytes to string
s1 = e.decode("UTF-8")
# Printing ASCII85 encoded string
print("ASCII85 Encoded:", s1)
# Encoding the ASCII85 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the ASCII85 bytes
d = base64.a85decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)
그러면 다음과 같이 출력됩니다.
ASCII85 Encoded: 87cURD]i,"Ebo80
Hello World!
Base85 인코딩 및 디코딩
Base64, Base32 및 Base16 함수와 마찬가지로 Base85 인코딩 및 디코딩 함수는 base64.b85encode()
및 base64.b85decode()
.
import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base85 Encode the bytes
e = base64.b85encode(b)
# Decoding the Base85 bytes to string
s1 = e.decode("UTF-8")
# Printing Base85 encoded string
print("Base85 Encoded:", s1)
# Encoding the Base85 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base85 bytes
d = base64.b85decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)
다음을 출력합니다.
Base85 Encoded: NM&qnZy;B1a%^NF
Hello World!