证明一个文件当前存在而不披露其内容。
cotar的Python项目详细描述
共同
科塔里允许你证明你有一个文件,而不释放它。
动机
下面的场景描述了这个简单工具的动机: 爱丽丝想用的一种想法;通过在文章或论文中发表或在产品中使用。但她需要帮助,所以她请鲍勃和她合作。不过,爱丽丝的主意太好了,她担心鲍勃会从她那里偷来这个主意而不把她牵扯进来。
为了解决这个问题,她需要先证明自己有这个想法,但还没有向公众公布。所以她写了一份简单的想法草稿,包括所有重要的成分,计算出这个文档的加密散列,并将文档存储在一个安全的地方。在和鲍勃谈话之前,她先把杂碎出版。由于H
是单向的,她的想法仍然是安全的。
如果bob未经alice的同意而试图使用她的想法,她可以在稍后的阶段将文档d
发布给全世界。因为每个人都可以检查她以前发布的hashH(d)
是否属于文档,所以她现在在与bob交谈之前已经证明了文档中的想法。
cotary(代码公证)使alice的这个过程非常简单。只需对文件执行cotary
,它就会在您的twitter帐户上发布一个加密的安全散列。这个带有时间戳和散列的tweet证明您在发布时拥有该文件。
这展示了一个very哈希函数的简单用例以及如何在实践中使用它们。
安装
科塔里目前只支持Python3。不支持python2。因此,请确保在python3环境中使用pip
;有时称为pip3
。在某些系统上,python3可执行文件被称为python3
,而不是python
。在这些情况下,您可以使用python3 -m pip
,而不只是调用pip
,以确保您拥有正确的版本。
从PYPI安装
cotary是available on PyPI所以使用pip安装非常简单:
确保您有适合python3环境的pip installed。
$ python3 -m pip install --user cotary
省略--user
以在系统范围内安装它。
现在,cotary
可执行文件应该在您的路径中并准备好使用。
从源安装
pip也可以用于从源代码安装。setup.py
文件包含pip需要知道的所有信息,因此您可以轻松地安装源的本地副本:
确保您有适合python3环境的pip installed。
$ python3 -m pip install --user .
省略--user
以在系统范围内安装它。
现在,cotary
可执行文件应该在您的路径中并准备好使用。
配置
twitterapi的配置是使用yaml配置文件完成的。
目前,这些是选择。默认配置文件在~/.config/cotary/config.yaml
中。
twitter:message:'Iownafilewithchecksum{checksum}(cotary)'# The following are twitter API keys. Get them from https://dev.twitter.com/appsconsumer:key:nullsecret:nullaccess_token:key:nullsecret:null
用法
usage: cotary [-h] [-c] [--config [CONFIG]] [-q] [file]
Publish the checksum of a file on Twitter.
positional arguments:
file File for which to publish checksum. If none is given,
read from stdin
optional arguments:
-h, --help show this help message and exit
-c, --calc_only Only calculate and print the checksum, do not publish it
--config [CONFIG] Use given config instead of ~/.local/cotary/config.yaml
-q, --quiet Do not print any messages
示例
$ cotary README.md
checksum: openssl_sha256:66ca5ae6f1f3760ad7258cc1d1e906ec8853a0e4da2b2de42f55036cffe8f8a2
Status published at 2019-01-16 15:18:38
导致此Twitter消息: