我想(PGP /
GPG)签署python代码。是的,我已经阅读了此书以及许多其他有关 保护 和 混淆 python代码的网站-这 不是
我想要的。我不想混淆代码。我希望客户和用户可以看到代码,他们可以修改代码,复制代码并进行派生工作,我希望将软件安装在GPLv3下。但是我想要具有“签名”功能的插件,以便在执行过程中可以
信任 它们。
这在Python中可行吗?检查库的gpg签名后可以导入库吗?这很容易:检查文件的gpg签名,然后通过导入加载它,否则引发异常。但这仅适用于单文件导入,而不适用于目录python模块。
很明显,如果客户更改了程序中的GPG密钥,或者自己在检查算法中删除了某些行,则一切都消失了-但这不是问题。他可以做任何他想做的事-
但这很愚蠢。他想要的是守信。我想让他通过将第三方插件复制到“插件”目录中来添加第三方插件,并让程序检查插件的“可信赖性”-然后将其导入。(因此,他 可以
运行 未 签名的插件,但要自己承担风险。)
Python的import
机制已经提供了实现所需功能所需的所有工具。您可以安装各种import
挂钩,以支持所需的功能。
特别是,您可能会发现安装元路径挂钩很方便,该挂钩可搜索“已签名的模块”并返回一个Loader
能够从此已签名的格式执行导入的。
用于签名插件的一种非常简单方便的格式是zip
包含以下内容的存档:
通过这种方式:
zip
存档解压缩并按自己的意愿进行修改即可。zip
档案库导入已在zipimport
模块中实现。这意味着您不必从头开始重写加载程序。实际上,如果您想将钩子的代码减少到最少,您只需要验证签名,然后将zip
归档文件的路径添加到其中sys.path
,因为pythonzip
即使没有显式使用python也已经处理了从归档文件的导入zipimport
。
使用这种设计,您只需要安装这些挂钩,然后就可以import
将插件当作普通模块使用,并且验证等操作将自动完成。
代码在这里,使用BouncyCastle实现: 我希望能够读取此签名并使用公钥验证它。如何将其转换回BouncyCastle对象?
我从brew安装了GPG。 它是gnupg2-2.0。30_2。 当我提交时,确实会收到一条错误消息: 我使用命令: 它给了我: 然后我使用了这个命令: 提交会返回相同的错误消息。 我怎样才能解决这个问题?
GPG 无法签名数据 如果当你在对 tag 或者 commit 签名时遇到以下提示: error: gpg failed to sign the data error: unable to sign the tag 首先,物理插拔一下 Yubikey 并确保安全卡状态可以被正确的列出: ❯ gpg --card-status 如果你看到: PIN retry counter : 0 0 3 这意味
代码签名是一种用来证明应用是由你创建的一种安全技术。 在macOS系统中,系统可以区分开应用的变更是偶然产生的,还是被恶意代码生成的。 在Windows系统中,如果程序没有代码签名证书,或者代码签名授信级别较低时,系统同样会将其列为可信程序,只是当用户运行该应用时,系统会显示安全提示。 确立授信级别的过程比较费时,因此最好提早开始着手代码签名的工作。 即使开发者可以发布一个未签名的应用程序,但是我
代码签名是一种用来证明应用是由你创建的一种安全技术。 macOS 系统能通过代码签名检测对app的任何修改,包括意外修改和来自恶意代码的修改。 在Windows系统中,如果程序没有代码签名证书,或者代码签名授信级别较低时,系统同样会将其列为可信程序,只是当用户运行该应用时,系统会显示安全提示。 信任级别随着时间的推移构建,因此最好尽早开始代码签名。 即使开发者可以发布一个未签名的应用程序,但是我们
我想使用BouncyCastle解析和验证OpenPGP分离签名。签名如下所示: 下面是我如何尝试在Kotlin中创建CMSSignedData: 我应该如何使用BouncyCastle验证这种签名?
我有麻烦签署提交。使用以下git配置: 我被告知只包含密钥的前八个字符。 分阶段后,在,我收到以下错误: 似乎大多数遇到此错误的用户都在Mac电脑上,需要进行一些额外的设置。但我在使用Kali Linux。 有什么建议吗?