将二进制数据编译成英语句子
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可以对任意长度的数据进行编码,但它不会预先填充数据,从而导致某些句子可能不完整。
另外,由于原始数据的长度没有被编码,解码函数必须将长度作为参数。