电报上的gpg加密备份

PGPgram的Python项目详细描述


pgpgram

Python 3.x SupportLicense: AGPL v3+

PGPgram example usage

pgpgram是使用TDLibpython中写入的GPG加密备份/还原工具。它用gnupg对文件进行本地加密,然后将它们发送到telegram cloud。

动机

我是来讨厌电报的。一开始,他们会说“我们会在一段时间后开放所有源代码,我们关心隐私”,然后

  • 他们已经neverreleasedthe sourceof the server(5年过去了),

  • 他们没有改进秘密聊天算法,因此它可以是发送消息而不缺少特征的默认方式(用一个^ {EM1} $Quase代替,至少可以说未解密的remote storage的{a9},尽管知道凭证恢复schemes至少存在为其authentication

  • 他们没有把秘密聊天移植到desktop

  • 他们在其他开源IM项目上进行了不公平的竞争,锁定了拥有超值支持的用户,比如not specified storage quota size(见鬼,你觉得你是什么,2004年的Gmail?).

  • 他们的立场不太明确;在侵犯版权方面,他们把自己放在一个灰色地带;对此事有强烈的意见,我认为他们的陈述存在漏洞。

因此,现在Telegram自诩为即时通讯领域的隐私拥护者,尽管前面几点恰恰相反。而且,他们的新闻材料总是非常小心地使用文字,这样他们的声明很容易让不知情的用户认为他们的服务是安全的: 他们不会像你说skype是安全的那样提到这一点,也不会像你说gnupg是安全的,你应该知道why

那我为什么要写pgpgram呢?

我写这篇文章是为了证明在电报上默认实现加密(无论是什么)是很容易的。 但这并不重要,因为电报api terms of services间接禁止在其服务器上使用加密:

禁止强制其他电报客户端的用户下载您的应用程序以查看使用您的应用程序发送的某些消息和内容

这确实是默认加密版本的电报所能做到的,即使保持了追溯性。

需要注意的是,pgpgram并不违反该规则,因为它生成的内容并不意味着要与其他电报用户共享。

在编写本文时,将pgpgram转换为一个成熟的电报客户端只是时间问题,使用其他加密方案来保护设备之间的消息共享、转发保密或秘密组聊天和机器人程序。

安装

pgpgram可通过Python Package Index (PyPI)获得。如果python >= 3.4是从python.org下载的,那么pip是预安装的;如果您使用的是gnu/linux发行版,那么可以找到如何在这个page上安装pip。

设置pip后,只需输入终端即可安装pgpgram

# pip3 install pgpgram

用法

pgpgram安装一个名为pgpgram的命令行实用程序,可用于backuprestoresearchlist文件。您可以使用pgpgram --help调用命令行帮助,并使用

获取命令选项
pgpgram <command> --help

PGPgram search

应用程序需要splitcatddsha256sumgpg出现在您的系统上,所以也许macos用户需要创建一些别名。目前文件删除没有处理,因为我达到了无偿开发的时间限制。

关于

此程序由Pellegrino Prevete根据GNU Affero General Public License v3 or later授权。
tdlib根据Boost Software License的条款获得许可。
如果你觉得这个程序有用,可以考虑给我一个beer、一个新的computer或者一个兼职的远程job来帮我付账单。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java流/下载文件,无需在Spring Boot中保留内存   kotlin/java是否有类似TryParse()的东西?   java Spring引导找不到用户类型的属性ID   java Spring 2到Spring 3的迁移:一个控制器用于多个视图   java包含多个程序包名为“安卓”的库。支持图样可提取'   java spring JPA是否支持自定义值框架?   java转义出基于文本字段的搜索栏   java AAPT:错误:未找到样式属性“安卓:attr/WindowsPlashCreenBackground”   java从文本文件中读取纬度和经度   java哪里可以找到如何使用排序的示例。顺序ignorecase(),其中nullhandling nulls last用于自定义Spring JPA如何提供查询   尝试使用Dialogflow上的Webhook动态给出响应时,java获取Webhook响应错误(206)   如何在java中替换匹配的字符串?   java模拟数学的最大价值。随机的   java Spring RestTemplate GET请求未给出正确响应   春爪哇。lang.IllegalArgumentException   java系统。load()永远不会发生   java剪辑循环不工作   java如何从maven构建中删除staxapi   java ThreadPoolExecutor的排队行为是否可以自定义,以更喜欢创建新线程而不是排队?