尝试将字符串写入新文件但是当我打开新文件时,它只显示最后一个字符。 Full Encrypt是一个包含随机ASCII值的字符串。
ciphername=input('Choose the name of the file the encrypted message will be put into: ')
ciphertext=open(ciphername +'.txt','w')
ciphertext.write(str(FullEncrypt))
ciphertext.close()
完全加密是:
EncryptFile=input('Enter the name of the file you wish to encrypt: ')
EightCharacterKey=''
for x in range(1,9):
RandomNumber=random.randint(33,126)
RandomCharacter=chr(RandomNumber)
EightCharacterKey+=RandomCharacter
n=0
OffsetNum=0
for x in range(1,9):
OffsetNum=ord(EightCharacterKey[n])
n=n+1
OffsetFactor=((OffsetNum/8)-32)
OffsetFactor=int(OffsetFactor)
print(OffsetFactor)
print('Your Eight Character Key is: '+str(EightCharacterKey))
File=open(EncryptFile)
for line in File:
print,(line)
for letter in line:
ConvertedText=ord(letter)
if ConvertedText==(' '):
pass
FullConvertedText=ConvertedText+OffsetFactor
if FullConvertedText>126:
FullConvertedText=FullConvertedText-94
print(FullConvertedText)
FullEncrypt=str(chr(FullConvertedText))
print(FullEncrypt)
如果可读
答案 0 :(得分:0)
无需验证代码的其余部分(所谓的加密部分)或对其进行优化,我相信只获得最后一个字符的原因是因为每次你重新分配FullEncrypt
的值'加密'一封信:
FullEncrypt=str(chr(FullConvertedText))
因此,一旦您查看整个文件,该变量仅包含最后一个加密的'信件。你想要做的是将每个下一个字母追加/连接到变量FullEncrypt
。一种可能的解决方案是:
外部for
循环之外:
FullEncrypt = ''
将FullEncrypt=str(chr(FullConvertedText))
替换为
FullEncrypt += str(chr(FullConvertedText))
PS:我可以给出的一个好建议是使用所有低位字母变量' _'单词之间:full_encrypt
,full_converted_text
。这将使您的Python代码更容易阅读。