Ni! Ni! Ni!
项目描述
Ni! Ni! Ni!
访问软件许可页面。
给我一棵灌木丛,即付钱。
接收许可代码。
使用用户名和许可代码配置软件。
快速入门
$ pip install knightswhosayni
$ python -m knightswhosayni.main [path/to/src] [module-name] [prefix] [license-key]
$ tox -e py
$ python -m build
$ twine upload dist/*
许可用户
选项1:使用代码
import builtins
builtins.[prefix]LICENSE_USER = '[username]'
builtins.[prefix]LICENSE_CODE = '[license code]'
选项2:使用环境变量
export [prefix]LICENSE_USER=[username]
export [prefix]LICENSE_CODE=[license code]
选项3:使用许可文件
# [prefix.lower()]license.ini
[prefix.strip('_')]
LICENSE_USER=[username]
LICENSE_CODE=[license code]
示例
给定
前缀 – ‘PACKAGE_NAME_V1_’
用户名 – name@example.com
import builtins
builtins.PACKAGE_NAME_V1_LICENSE_USER = 'name@example.com'
builtins.PACKAGE_NAME_V1_LICENSE_CODE = 'e385cf4c-be9a-4389-82ba-bfa85b8ad17c'
export PACKAGE_NAME_V1_LICENSE_USER=name@example.com
export PACKAGE_NAME_V1_LICENSE_CODE=e385cf4c-be9a-4389-82ba-bfa85b8ad17c
# package_name_v1_license.ini
[PACKAGE_NAME_V1]
LICENSE_USER=name@example.com
LICENSE_CODE=e385cf4c-be9a-4389-82ba-bfa85b8ad17c
注意事项
也许这个包是个坏主意。但这是我是如何到达这里的
我偶尔会制作有用的包。
人们使用它们,偶尔会贡献(这是好事!)。
很少有人向项目捐款(数额很小)。
我考虑过使用GitHub Donors,但感觉这需要整个在线“个性”。我喜欢交朋友,但也许老式软件许可可以行得通。
使用RSA或类似的真正加密引入了过于沉重的依赖(我的库通常没有依赖)。
我也不想在每次运行代码时都强制代码调用网络服务器(隐私问题等等)。
我仍然相信大多数人愿意“做正确的事”,特别是如果“做错事”更麻烦的话。
我仍然想制作开源软件,如果您想窃取代码,它就像ctrl-c ctrl-v一样简单。但是,我要打赌,失去“pip install thing”的便捷性已经足够烦人了(商标)。
因此,“说Ni的骑士”是我的典范。他们足够麻烦,以至于需要带他们一丛灌木,但又不至于麻烦到需要RSA加密、许可证服务器和律师介入。
在实际应用中,该包分为四个部分
将__license__.py文件添加到Python包中以进行分发。
修改Python包的__init__.py文件以进行新的编码。
将许可证检查注入到Python包源文件中。
将Python包源文件加密,嗯,混淆,嗯,隐藏,嗯,用新的编码编码。
这实现了三个目标
在导入源文件时进行许可证检查。
包中的源文件难以更改。
修改包的__init__.py会破坏编码。
我希望这足以让人感到烦恼,从而促使用户购买许可证而不是绕过它。
以下是一些它无法保护的事项
创建自己的密钥生成器 - 正确,RSA很棒,但太重了。
解码源代码 - 正确,它已经在网上开源。
提供未混淆的代码 - 正确,但那样就没有pip更新了。
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
knightswhosayni-0.2.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 62380fbd7f162f745ef86dca342ae528009bcca9b6d2d3ad59dbc92da15cf4b1 |
|
MD5 | 70cf1e9e0d733311071ce22853ae3321 |
|
BLAKE2b-256 | c34b1cd28c730bae3406a48693372ce708e10f7850feca80593d683255534f89 |
knightswhosayni-0.2.0-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 48e01a6cd95db98e68398df2a81d0d4332b1dd284ecc2c185cb8439168d4dec8 |
|
MD5 | 30de5d5f9e02e810c88ed9cabe99bc8b |
|
BLAKE2b-256 | e48edb0481e782c3e8bf60ac1c7e641a6532b4e5647cfbd2d97d1d798881056f |