就像Snapchat…密码。
snappass的Python项目详细描述
就像Snapchat…密码。
这是一个让你安全共享密码的web应用。
假设你有密码。你想把它给你的同事,简。 你可以发邮件给她,但那是在她的邮件里,可能有备份, 可能在国安局控制的某个存储设备里。
你可以在聊天时把它发给她,但有可能简会把所有的信息都记录下来 因为她使用google hangouts聊天,google hangouts聊天可能会记录下所有内容。
你可以写下来,但是你找不到笔,而且有太多 因为你的保安保罗是个偏执狂。
所以我们建立了SnapPass。没那么复杂,只有一件事。如果 简得到一个密码的链接,但从不看它,密码就消失了。 如果国家安全局得到了链接,他们看了看密码…嗯 有密码。而且,简不能得到密码,但现在简知道了 不仅有人在查看她的电子邮件,他们还在点击链接。
不管怎样,我们花了很少的时间来写,但我们想我们可以帮你 很难自己写,因为也许你很忙,还有其他事情 去做。享受吧。
安全性
密码通过cryptography库中的Fernet对称加密进行加密。 为每个密码生成一个随机的唯一密钥,并且从不存储; 它相当于作为密码链接的一部分发送。 这意味着即使有人可以访问redis存储,密码仍然是安全的。
要求
- redis
- python 2.7+或3.4+(均包含)
安装
$ pip install snappass $ snappass * Running on http://0.0.0.0:5000/ * Restarting with reloader
配置
您可以通过环境变量配置以下内容。
SECRET_KEY:用于签名密钥的唯一密钥。这应该 保守秘密。有关详细信息,请参见Flask Documentation。
DEBUG:以调试模式运行Flask Web服务器。有关详细信息,请参见Flask Documentation。
STATIC_URL:这应该是静态资产的位置。你可能不会 需要改变这个。
NO_SSL:如果不使用ssl。
REDIS_HOST:这应该由redis设置,但是如果需要,可以重写它。默认为"localhost"
REDIS_PORT:是redis服务的端口,默认为6379
SNAPPASS_REDIS_DB:是要在此redis服务器上使用的数据库。默认值为db 0
REDIS_URL:(可选)将用于配置redis客户端对象,而不是REDIS_HOST、REDIS_PORT和SNAPPASS_REDIS_DB。例如:redis://username:password@localhost:6379/0
REDIS_PREFIX:(可选,默认为"snappass")前缀,用于redis密钥,以防止与其他潜在客户端发生冲突
码头工人
或者,您可以使用Docker和Docker Compose来安装和运行snappass:
$ docker-compose up -d
这将拉取所有依赖项,即redis和适当的python版本(3.7),然后启动snappass和redis服务器。SnapPass服务器可在以下位置访问:http://localhost:5000
我们在招聘!
你真的对开源和优秀的软件工程感到兴奋吗? Pinterest是hiring!
学分
“SnapPass”最初是由Owen Coutts和Ryan Park编写的。
目前由Pinterest的Nicholas Charriere和Yongwen Xu维护。
非常感谢您的贡献:
- 欧文
- Ryan Park
- 徐永文
- 尼古拉斯·夏里埃
- 塞缪尔·迪翁·吉拉多
- 詹姆斯w索恩
- 布兰登·戴维斯
- 约瑟夫·博伊图
- 卡洛斯·莫雷诺
- 唐尼·温斯顿
- 詹姆斯·巴克莱
- 托马斯·德科
- 劳里·鲁比