[dxcode] A distinctive, URL‑safe binary encoder with the signature `dx` prefix and CRC16 checksum.
Project description
dxcode - Python 实现
带有 dx 前缀的自定义编码算法的 Python 实现。
安装
pip install dxcode
或从源码安装:
git clone https://github.com/dogxiii/dxcode.git
cd dxcode/implementations/python
pip install -e .
使用方法
基本使用
from dxcode import dx_encode, dx_decode, is_dx_encoded
# 编码字符串
encoded = dx_encode('你好,Dogxi!')
print(encoded) # dxXXXX...
# 解码
decoded = dx_decode(encoded)
print(decoded) # 你好,Dogxi!
# 检查是否为 DX 编码
print(is_dx_encoded(encoded)) # True
print(is_dx_encoded('hello')) # False
编码字节数据
from dxcode import dx_encode, dx_decode
# 编码字节
data = b'\x00\x01\x02\xfe\xff'
encoded = dx_encode(data)
print(encoded)
# 解码为字节
decoded = dx_decode(encoded, as_bytes=True)
print(decoded) # b'\x00\x01\x02\xfe\xff'
处理文件
from dxcode import dx_encode, dx_decode
# 编码文件内容
with open('secret.txt', 'rb') as f:
encoded = dx_encode(f.read())
# 保存编码后的内容
with open('secret.dx', 'w') as f:
f.write(encoded)
# 解码文件
with open('secret.dx', 'r') as f:
decoded = dx_decode(f.read(), as_bytes=True)
with open('secret_decoded.txt', 'wb') as f:
f.write(decoded)
API 参考
dx_encode(data)
将数据编码为 DX 格式。
参数:
data:str | bytes | bytearray- 要编码的数据
返回值:
str- 以dx为前缀的编码字符串
示例:
dx_encode('Hello') # 字符串
dx_encode(b'\x00\x01') # 字节
dx_decode(encoded, as_bytes=False)
将 DX 编码的字符串解码。
参数:
encoded:str- DX 编码的字符串(必须以dx开头)as_bytes:bool- 是否返回字节(默认False,返回字符串)
返回值:
str | bytes- 解码后的数据
异常:
ValueError- 如果输入不是有效的 DX 编码
示例:
dx_decode('dxXXXX...') # 返回字符串
dx_decode('dxXXXX...', as_bytes=True) # 返回字节
is_dx_encoded(s)
检查字符串是否为有效的 DX 编码。
参数:
s:str- 要检查的字符串
返回值:
bool- 是否为有效的 DX 编码
get_dx_info()
获取 DX 编码的信息。
返回值:
dict- 包含版本、作者、字符集等信息
常量
from dxcode import DX_CHARSET, DX_PREFIX, DX_MAGIC, DX_PADDING
print(DX_CHARSET) # DX 字符集
print(DX_PREFIX) # 'dx'
print(DX_MAGIC) # 0x44
print(DX_PADDING) # '='
命令行工具
安装后可以在命令行使用:
# 编码
echo "Hello, Dogxi!" | dx-encode
# 解码
echo "dxXXXX..." | dx-decode
# 或者直接使用
dx-encode "Hello, World!"
dx-decode "dxXXXX..."
异常处理
from dxcode import dx_decode, DxEncodingError
try:
dx_decode('invalid-string')
except DxEncodingError as e:
print(f'解码错误: {e}')
相关
- dxcode - JavaScript/TypeScript 库
- dxcode-cli - CLI 命令行工具
- dxc.dogxi.me - 在线编码解码
兼容性
- Python >= 3.7
许可证
MIT License © Dogxi
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
dxcode-2.0.0.tar.gz
(6.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dxcode-2.0.0.tar.gz.
File metadata
- Download URL: dxcode-2.0.0.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
febf54996340a6e6fa6431de7a2c0ed86a411988b59c947c48fc9d0f0bac5e91
|
|
| MD5 |
b413c68e7e25f90e4eff64cac41a9aa6
|
|
| BLAKE2b-256 |
2dacbdd47baaecd5b8ea733153cfcb5da89da9d8c1541f20d98626087ac16f71
|
File details
Details for the file dxcode-2.0.0-py3-none-any.whl.
File metadata
- Download URL: dxcode-2.0.0-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f11cd057a9c59a956272847005c9cbc821aa7c83b37bc6d8d63ec74fd23b451
|
|
| MD5 |
95cb25b2278c1c78cd782f74794098e9
|
|
| BLAKE2b-256 |
9c1d5e27d49119e99f10d8c905109a241d454aafae03bac311d6951463edd694
|