用nice-cli实现主密码算法v3

pympw的Python项目详细描述


#pympw:cli和主密码v3的实现——一个自由的算法


master password是一个确定的密码生成器。
这是基于
[mpw js]的主密码算法v3的python实现(https://githhub.com/tmthrgd/mpw js)。

用几十行python实现了酷密码管理器的[算法](http://www.masterpasswordapp.com/masterpassword-algorithm.pdf)。请注意**此代码仅用于演示目的。**如果要使用可靠的确定性密码管理器,请在[master password.app](http://masterpassword.app)上获取一个。

\Thon Crypto Libraries**scrypt、hmac和Digest.sha256**.
-*为单个站点快速生成密码。
-生成长密码、管脚,甚至是令人难忘的短语
-直观的交互会话。*输入您的主密码一次,并要求网站密码,因为你去!*
-将密码复制到剪贴板---*根本不打印密码!*
-交互式会话可能会在几分钟后超时以*保护您的隐私*
-支持计数器和*所有*MPv3密码模板类(最大、长、中、基本、短、pin、名称和短语)

/>
```
$pip安装pympw
```
`````
````
git clone--depth=1 https://github.com/roguh/pympw
cd pympw
pip安装。
````



cli用法

使用一个命令生成一个密码

de7.qojfdeqa
```

交互模式

通过省略"--site"参数进入交互模式。键入"ctrl-d"或"quit"退出。

```
$pympw-n user
请键入主密码>;
请键入站点名称>;google.com
请键入counter或enter作为默认值=1>;20000
请键入type或enter作为默认值=long>;
vode7.qojfdeqa
请键入site name>;退出
再见
````

``````更简洁的交互模式


进入其他交互模式

``````
$python3 pympw-n user-b/
请键入您的主密码>;
请键入站点名称/类型/计数器]>;google.com
kasi2/fipshonm
请键入type site name[/type[/counter]]>;google.com/pin
7002
请键入site name[/type[/counter]>;google.com/medium/3
wap4/voy
请键入site name[/type[/counter]]>;google.com/x
i%&yc(srv7vjqok%g0~
请键入site name[/type[/counter]>;退出
再见
```

完整示例

默认设置为x>;
将密码复制到剪贴板
e(mmcbruyhapev6bm7^
````

使用`--exit after`在几秒钟后关闭交互模式。
使用`--quiet`打印较少的输出。
如果仍在使用程序,则使用`--keepalive`重新安排超时。

```
$pympw——name user——键入maximum——quiet——copy——splitby/\
——keepalive——在"$((60*5))"之后退出"\
——退出命令"notify send"master password现在已关闭"
master password>;
站点名称//type[/counter]>;google.com/l/20000
vode7.qojfdeqa
站点name[/type[/counter]]>;google.com
i%&yc(srv7vjqok%g0k~
site name[/type[/counter]]>;300秒的超时时间已到
拜拜
```



````
` ` ` ` ` `
` ` ` ` ` ` ` ` ` ` ` `<>$pympw-h
用法:pympw[-h][---name][---site site][--site site][--countcounter][--安静][--br/>>>[--cop][--hide pw][--splitby splitby-splitby[--keepalive][--keepalive][--出口公司mmand exit_command]
[--键入{maximum,x,long,l,medium,m,basic,b,short,s,longbasic,lb,pin,,name,n,phrase,ph}]

cli to master password algorithm v3。密码是在本地生成的,您的
主密码不会发送到任何服务器。http://masterpassword.app

省略此参数以启动交互式会话。
--计数器,-c计数器
小于2的正整数**31=4294967296
--键入{最大值、x、长、l、中、m、基本、b、短、s、长基本、lb、pin、_、名称、n、短语、ph}
密码类型
--复制,-y复制将密码打印到剪贴板而不是将其打印到
--hide pw,-d never print passwords
--splitby splitby,-b splitby
更高效的交互式会话。建议值:
tab、space或'/'
--退出后退出,
脚本将超时并在这几秒后关闭
--退出命令退出命令
如果脚本超时,请运行此命令按enter
--quiet,-q-less-输出
```




从pympw导入站点密码、主密钥、模板类名称的库用法

`````
>;从pympw导入站点密码、主密钥、模板类名称
````

>
>查看所有可用的模板类


`````
>;模板类类名称

['最大值,
'x',
'x'>'长',
'l',
'medium',
'm',
'basic',
'b',
'short',
's',
'longbasic',
'lb',
'pin',
'#',
'name',
'n',
'phrase',
'ph']
```

Generate a master key (>1sec)

```
> master_key = master_key(b'USER', b'PASSWORD')
b'\xc8\xf2\xc7\xd3<(\x05\xaf\xf8ng\xfb\xb2\x06\xab6\x83\xfc\x85m\xcb\xa3$c\xb7\xc6I\x93\x01\xc7\xeb+\x810\xb2\xf2\x84\xa3f\xb7\xf0R\x9c_\xf1\xb3b\xa2\x99\xcb\xd3\x97`\xab_\xef\x89\xe6S\xe7\x84LM\xee'
```

Generate a password

```
> site_password(master_key=master_key, site_name='google.com', template_class='long', counter=20000)
'Vode7.QojfDeqa'
```

## Running tests

```
>$python3 setup.py test






===================================================================
$python3.7.0,pytest-3.7.0,pytest-3.6.4,py-1.5.4,pluggy-0.7.1
>收集了3个项目



>pympw/tests/pympw/tests/test/test-master-u v3.py版…[100%]


==3次传递的时间为0.62秒=3次传递的时间为0.62秒======================================
```








主密码是由[maarten billemont(http://lunath.com/),[lyndir(http://www.lyndir.com.com/),[lyndir(http://www.lyndir.com.com/)==3次传递的时间为0.62秒===3次传递的时间为0..

这个python实现是由hugo rivera创建的。

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

推荐PyPI第三方库


热门话题
编译器构造为什么在Java中允许初始化对Null的引用?   java手动调用javax的actionPerformed。摆动计时器   使用git分支的java Maven版本控制   Java8句子流   java JPA OneToOne和OneToMany实体实例化/创建   java如何将值添加到列表<Map<String,Object>>?   java如何使用ComboBox在一个框架内更改JPanel。getSelectedIndex()   java在比较XML和xmlunit时忽略文本差异   java无法从其他pc连接到本地主机   Java中分配对象id的优雅方式   Java中静态变量的使用   java试图从Neteller获取OAuth访问令牌时产生错误:“服务器返回HTTP响应代码:401表示URL”   Java:基元类型是否会影响性能?   java可以让hasNext()不区分大小写吗?   基于AutoCompleteTextView建议属性或AutoCompleteTextView值的java Android搜索   java流文件到firefox浏览器有时无法打开应用程序对话框   在没有ArrayList的Java中返回数组中的搜索结果   复制java。木卫一。IOException:数据错误(CRC)   java为什么我在尝试删除Facebook测试用户时会出现“方法未实现”错误   java如何使用JNA调用SetProcessReliationPolicy