将二进制数据编译成英语句子

BatteryHorse的Python项目详细描述


电池车

将文本编码和解码为英语句子。这个名字的灵感来自于这个xkcd comic

API

BatteryHorse模块公开了三个功能:

编码数据(数据:字节)->;str

将给定的数据编码成一个或多个英语短语/句子。使用NLTK库中的Wordnet创建以下格式的句子:动名词形容词连词形容词。如果字节可以被编码成更少的语音部分,那么剩下的部分将被截断。

解码数据(数据:str,长度:int)->;字节

把一串句子或短语解码成原来的字节。还需要输出字节的大小

创建密钥(大小=3:int)->;字节

使用wordnet中的随机单词创建随机密码短语。size指定要使用的字数

示例

对一些数据进行编码的基本示例

>>>importbatteryhorse>>>batteryhorse.encode_data(b'TEST')'Unitise annum abasic'

显示编码和解码数据的示例

>>>fromhashlibimportsha1>>>importbatteryhorse>>>>>>digest=sha1('test'.encode('utf-8')).digest()>>>>>>batteryhorse.encode_data(digest)'Birdnest vara lobed or orthoptic. Wow fencing orthogonal yet anthropomorphic. Scranch rifadin anosmatic'>>>>>>batteryhorse.decode_data('Birdnest vara lobed or orthoptic. Wow fencing orthogonal yet anthropomorphic. Scranch rifadin anosmatic',len(digest))b'\xa9J\x8f\xe5\xcc\xb1\x9b\xa6\x1cL\x08s\xd3\x91\xe9\x87\x98/\xbb\xd3'>>>print(digest)b'\xa9J\x8f\xe5\xcc\xb1\x9b\xa6\x1cL\x08s\xd3\x91\xe9\x87\x98/\xbb\xd3'

命令行

batteryhorse也可以在命令行中使用。

  --encode         Accept data to be encoded from STDIN
  --decode         Accept data to be decoded from STDIN
  --generate       Generate a random secret
  --length LENGTH  Specify the length of secret or data to be decoded

作为一个例子

$ echo"TEST"| python -m batteryhorse --encode
Bare gyrostabilizer amygdaloidal

使用

这个图书馆的初衷是创造一种共享公钥指纹的新方法。

限制

尽管batteryhorse可以对任意长度的数据进行编码,但它不会预先填充数据,从而导致某些句子可能不完整。

另外,由于原始数据的长度没有被编码,解码函数必须将长度作为参数。

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

推荐PyPI第三方库


热门话题
Java类之间并发性不一致的HashMap   插件如何在JavaSwing中使用UIManager和Classloader从外部jar安装外观?   java JasperReports:找不到子报表   在项目中找不到java生成的Javadoc文件   java BigDecimal。multiply()和divide()方法返回十六进制数。为什么?   java统计出现次数并从字符串中删除重复项   调用运算符时发生java NullPointerException   Spring和Hibernate之间的java配置错误   JavaZK将用户重定向回上一页   Javasocket为传出连接指定特定的网络接口   如果拖动到某个区域外,java Make按钮操作将被取消   如何在Eclipse for selenium 3.141.59中添加Java文档链接   java从匹配条件的数组中获取所有索引   docker未连接到RemoteWebDriver的java Gitlab ci selenium测试   java重写run方法   utf 8如何使用java解码UTF8编码的字符串?   java如何从eclipse调试部署在tomcat上的web应用程序?   将字母字符与前面没有百分号的Java正则表达式匹配