Skip to main content

Base95 是一种用 95 个可见的 ASCII 字符(含空格)表示任意二进制数据的编码方法,编码后的信息密度高于 Base64 编码。

Project description

项目描述

Base95 是一种用 95 个可见的 ASCII 字符(含空格)表示任意二进制数据的编码方法。

该实现使用了从空格(ASCII 32)到波浪符(ASCII 126)这 95 个字符来编码二进制数据,编码后的信息密度高于 Base64 编码。

作者

江南雨上

主页 | Github | PyPi | 微信 | 邮箱 | 捐赠

Bug提交、功能提议

你可以通过 Github-Issues微信 与我联系。

安装

pip install base95

教程

本文将以简洁的方式向你介绍核心知识,而不会让你被繁琐的术语所淹没。

导入

from base95 import BaseEncoding

编码

base95 = BaseEncoding(95)

bytestring: bytes = '黄河之水天上来'.encode('utf8')  # 建构一个字节串

encoded_text: str = base95.encode(bytestring)  # 编码成 Base95

解码

decoded_bytes: bytes = base95.decode(encoded_text)  # 解码成字节串

任意进制编码

通过上面的例子,你可能会想:使用 BaseEncoding(n) 是不是可以创建其它进制的编码方法?答案是:是的。

你可以通过 BaseEncoding(n) 方式创建 2 ~ 95 进制的编码方法。例如:

base2 = BaseEncoding(2)
base50 = BaseEncoding(50)
base80 = BaseEncoding(80)

直接导入常用的编码方法

对于一些具有特别意义的编码方法,我们提供了直接导入的方式,而无须使用 BaseEncoding(n) 方式创建。

这些编码方法是:

  • base95:使用了 ASCII 中的全部(95 个,含空格)可见字符;
  • base90:使用除【单引号、双引号、反引号(`)、空格、反斜杠】这 5 个可能影响阅读体验的字符以外的 90 个字符;
  • base62:仅使用 0~9、a~z、A~Z 这 62 个字符;
  • base10:仅使用 0~9 这 10 个字符。

你可以直接导入并使用这些编码方法,例如:

from base95 import base90

base90.encode('黄河之水天上来'.encode('utf8'))

当然,你仍然可以通过 BaseEncoding(90) 这种方式使用这些编码方法,这两种方式是等价的。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

base95-2.0.2.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

base95-2.0.2-py2.py3-none-any.whl (6.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file base95-2.0.2.tar.gz.

File metadata

  • Download URL: base95-2.0.2.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for base95-2.0.2.tar.gz
Algorithm Hash digest
SHA256 2a1ccfa5c508e02e6edf3a5aa92745104d6b470d2bf6344c2f9fa188430c7298
MD5 255c8408492bf18f1b74d5890e277701
BLAKE2b-256 9027bb189ebd7ffb9adf0d24c8cf7ec8f5208c792ad8c0a48556fafdc808c3d5

See more details on using hashes here.

File details

Details for the file base95-2.0.2-py2.py3-none-any.whl.

File metadata

  • Download URL: base95-2.0.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for base95-2.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d2124a37eea44e1c5f98c48ffbf26f4ce567e7d012d4d4420e2e1d12fcff7f2e
MD5 e244e8a90651efde726f1b5204bf0e1e
BLAKE2b-256 2c684c2cbdf083ec2e2cb3ca795ed910c5592c30583feb3cd4a13ab716e3ca80

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page