好的...我正在编写一个python脚本来将文本转换为二进制...
我使用easygui来快速转换短语并测试问题。我的问题......
主要的工作是:
BText = bin(int(binascii.hexlify(DText),16))
我也通过一个easygui对话框返回了值......但是当我输入一个字符时,我得到一个15个字符的响应......
所以a)我在某处得到了一个额外的字符(b4主力?)和
b)为什么不是返回值 16 个字符?
我还尝试了 4 个字母的单词和其他各种大小,但我总是以 7 个字符太长。所以我在某处获得了一个额外的条目值,并且总是返回一个字符,而不是完整的 8 个返回值......
我不知道发生这种情况的底层过程,但它应该是我应该知道的......谢谢.. .
好吧尝试了一个小时来发布我的代码,我猜它的格式不正确......我运行 Python 2.7.8。
我使用 easygui.textbox 接收输入和输出。
输入通过上面的主力运行。然后使用 0b 从返回的输入中剥离BText = str(BText)[2:]
. 然后返回结果字符串并通过 easygui.textbox 显示给用户...
EasyGui
#Imports
import OTPModule as TP
import easygui as EG
Plain = EG.textbox(msg='Enter Message', title='OTP', text='Hi', codebox=1)
XORD, Key = TP.Gather(Plain)
EG.textbox(msg='XORD', title='OTP - XOR Message', text=XORD, codebox=1)
EG.textbox(msg='Key', title='OTP - Key', text=Key, codebox=1)
raw_input("Press Enter To Decrypt")
XOrd = EG.textbox(msg='Enter XOR Message', title='OTP', text='01', codebox=1)
Key = EG.textbox(msg='Enter Key', title='OTP', text='10', codebox=1)
Plain = TP.Release(XORD, Key)
EG.textbox(msg='ASCII', title='OTP', text=Plain, codebox=1)
raw_input("Press Enter To Exit")
模块..
#################
# One Time Pad #
# (Module) #
# Python 2.7.8 #
# Nov 2014 #
#Retler & Amnite#
#################
#imports
import binascii
import random
def Gather(DText):
print(DText)#Debug
#First Things First... Convert To Binary
BText = bin(int(binascii.hexlify(DText),16))
#Strip 0b
BText = str(BText)[2:]
print(BText)#Debug
#Generate Key
KText = []
a = 0
while a < len(BText):
b = random.randint(0,1)
KText.append(b)
a = a+1
KText = ''.join(map(str,KText))
print(KText)#Debug
print a
#So apparently we have to define the XOR ourselves
#0^0=0, 0^1=1, 1^0=1, 1^1=0
EText = []
a = 0
while a < len(BText):
if BText[a] == KText[a]:
EText.append(0)
else:
EText.append(1)
a = a+1
EText = ''.join(map(str,EText))
return(EText, KText)
######The Other Half#######
def Release(EText, KText):
print(EText)#Debug
print(KText)#Debug
#XOR
BText = []
a = 0
while a < len(EText):
if EText[a] == KText[a]:
BText.append(0)
else:
BText.append(1)
a = a+1
BText = ''.join(map(str,BText))
print(BText)#Debug
#Binary To ASCI(Re-Add 0b)
DText = int('0b'+BText,2)
DText = binascii.unhexlify('%x' % DText)
return(DText)