通过用blake2b散列输入并使用经调整的醉酒主教算法生成ascii随机图。

randomart的Python项目详细描述


randomart.py

CodeFactor

一个将blake2b散列显示为小ascii艺术图片的脚本,类似于openssh的 randomart

这允许人类更容易验证,但可能不如 消化!

参见论文[散列可视化:一种提高现实世界安全性的新技术1][^1] 有关随机艺术概念的更多信息。

论文[醉酒主教:openssh指纹可视化分析 algorithm2][^2]更详细地分析了openssh实现。

应该明确指出的是,我的算法是类似于,但不是等同于。 bishop“openssh实现之路。当前的实现:

  • 在边界处翻转边,将场变成圆环
  • 以距离1向所有可能的方向移动,而不仅仅是对角移动
  • 不标记开始(S)和结束(E)并使用不同的字符调色板

我没有执行过任何类似的分析[2][^2],但希望我的实现 不要表现得更糟。

安装

直接从github使用pip安装:

pip install git+https://github.com/ansemjo/randomart

用法

脚本要求在第一个位置参数中有一个文件,或者只从标准 输入。因此,它最适合在管道中使用:

echo 'Hello, World!' | randomart.py

有两个标志可控制输出:

  • --ascii框框只使用ascii字符
  • --hash-在随机图片前打印计算的摘要

否则请使用randomart.py --help获取用法帮助。

作为图书馆

如果要使用自己的散列,可以从random_art.randomart

导入
fromrandom_art.randomartimportdraw,drunkenwalk...# generate your hash digestdigest=...# generate randomart, HASHNAME must be 10 charactersart=draw(drunkenwalk(digest),HASHNAME)print(art)

[^1]:

http://www.ece.cmu.edu/~adrian/projects/validation/validation.pdf“佩里格A.和宋D.,1999年, 密码技术和电子商务国际研讨会(Cryptec'99)“

[^2]:

http://www.dirk-loss.de/sshvis/drunken_bishop.pdf“德克损失,托比亚斯·利默,亚历山大·冯 格恩勒,2009“

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

推荐PyPI第三方库


热门话题
具有未知数量条件的java If语句   java如何在Spark中使用两个“条件”进行过滤?   雅加达ee为ColdFusion提供的最佳Java ee服务器   java如何在jersey的MessageBodyWriter方法中获取writeTo中的anotations值?   java从脚本文件调用jar文件中的函数   java在执行insert语句后,如何获得id值为的语句?   在OS X上设置OpenCV Java绑定   java使用for循环遍历数组x。以字符串形式返回x的元素,其中每个元素由一个空格分隔   ApacheiClientBuilder为Algolia Java创建的APIClient是线程安全的吗?   java在DFS/BFS算法中获取邻居时避免内存分配?   java使用AES/CBC/PKCS5P加密大文件(2GB)   允许保存/加载列布局的Java DB网格组件   队列大小为1的java Spring调度   跑步带有Java参数的exe   java正则表达式将所有“<”和“>”标记替换为“&lt;”及“&gt;”在<<![CDATA]>标签?   java何时同步变量?