多种加密方案的 Python 实现
Project description
LibTakiyasha
LibTakiyasha 是一个 Python 音频加密/解密工具库(当然也可用于加密非音频数据),支持多种加密文件格式。LibTakiyasha 不提供任何命令行或图形界面支持。
使用前必读
本项目是以学习和技术研究的初衷创建的,修改、再分发时请遵循 License。
本项目的设计灵感,以及部分解密方案,来源于同类项目:
本项目不内置任何密钥,要正常打开/保存任何类型的加密文件,你需要提供正确的对应的密钥。你需要自行寻找解密所需密钥或加密参数,在调用时作为参数传入。
如果你要解密别人提供的文件,你可以从提供者处索要密钥,或者寻求同类项目和他人的帮助。
LibTakiyasha 对输出数据的可用性(是否可以识别、播放等)不做任何保证。
新变化?
请参阅变更记录。
(如果你是在 PyPI 上浏览本项目,它可能会出现在页面的底部,点按此处跳转。)
特性
- 使用纯 Python 代码编写
- 兼容 Python 3.8 及后续版本,兼容多种 Python 解释器实现
- 可在此处查看具体兼容哪些实现
- 易于阅读,方便 Python 爱好者学习
- (包括依赖库)无任何 C/C++ 扩展模块,跨平台性强
- 兼容 Python 3.8 及后续版本,兼容多种 Python 解释器实现
- 支持四种加密文件:
- 网易云音乐加密文件
.ncm
- QQ 音乐加密文件 QMCv1
.qmc[0-9]
、.qmcflac
、.qmcogg
、.qmcra
等 - QQ 音乐加密文件 QMCv2
.mflac[0-9]
、.mgg[0-9]
等 - 酷狗音乐加密文件 KGM/VPR
.kgm
、.vpr
- 不支持创建新加密文件
- 酷我音乐加密文件
.kwm
- 更多信息,请参见此处
- 网易云音乐加密文件
性能表现
参见此处。
安装
可用的最新版本:2.1.0,GitHub 发布页面,PyPI
安装方式
- 使用
pip
,通过 PyPI 安装最新版本:python -m pip install -U libtakiyasha
如果你要下载其他版本:
- PyPI:https://pypi.org/project/libtakiyasha/#history ,挑选自己所需的版本,下载安装包,手动安装。
- 或者使用 pip 安装:
python -m pip install -U libtakiyasha==<你所需的版本>
- 或者使用 pip 安装:
- 前往发布页面挑选自己所需的版本,下载安装包,手动安装。
依赖项
LibTakiyasha 依赖以下包,均可从 PyPI 获取:
如何使用?
在这里可以找到使用方法和示例。
同时,在本项目的 Wiki 主页可以找到其他一些可能对你有用的东西。
常见问题
为什么 2.x 打开文件需要密钥,而 1.x 版本不需要?
这是出于以下考虑:
- LibTakiyasha 是一个加解密库,当然需要为用户提供自定义密钥的权利
- 为了保护本项目不受美国数字千年版权法Digital Millennium Copyright Act(DMCA)影响,避免仓库被误杀
- 因此,本仓库所有 1.x 及更早版本的提交和发布版本都已删除。
变更记录
版本 2.1.0
- 减少了一些重复代码的使用,删除了大量不再使用的代码
- 优化了判断是否为 QMCv1 文件的逻辑、QMCv2 文件的主密钥探测逻辑
libtakiyasha.qmc.QMCv2
的open()
和save()
现在可接受多个混淆密钥,通过关键字参数garble_keys
在需要时传入。- 因此,上述方法中原来的关键字参数
garble_key1
和garble_key2
已经被干掉了,请及时修改你的工具链。 - 如果提供此参数,需要提供一个产生至少一个混淆密钥(类字节对象)的可迭代对象(例如列表),且混淆密钥的顺序必须正确。
- 因此,上述方法中原来的关键字参数
在这里查看更详细的变更记录。
版本 2.0.1 至 2.1.0rc2
在这里查看更详细的变更记录。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
libtakiyasha-2.1.0.tar.gz
(53.7 kB
view hashes)
Built Distribution
Close
Hashes for libtakiyasha-2.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 383bfb1a170379532e895c0007c21df9c4021deabf5731179b0e2355acf7e8d1 |
|
MD5 | f79fda66f92faa5b0abb83ed3e756956 |
|
BLAKE2b-256 | 2753eb441022f24c2ddc93c26fd77751275117896e832436ec232f048c3617a3 |