수색…


소개

기본 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!


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow