Python 尝试制作加密程序,对文件进行读写,并用两个关键字进行加密。len()函数不工作
试图用python创建一个加密/解密程序,从文件中读取消息,用两个关键字加密,然后输出到另一个文件。而且,它可以反过来做。 我对len()函数有问题: 我得到一个错误:内置函数或方法类型的对象在这段代码中没有len()Python 尝试制作加密程序,对文件进行读写,并用两个关键字进行加密。len()函数不工作,python,encryption,Python,Encryption,试图用python创建一个加密/解密程序,从文件中读取消息,用两个关键字加密,然后输出到另一个文件。而且,它可以反过来做。 我对len()函数有问题: 我得到一个错误:内置函数或方法类型的对象在这段代码中没有len() if (len(line)) == 0: fileRead = True 在上下文中,这是整个程序: print("Welcome to Python Encrypt 2015") print("Only enter alphabet charcters
if (len(line)) == 0:
fileRead = True
在上下文中,这是整个程序:
print("Welcome to Python Encrypt 2015")
print("Only enter alphabet charcters into the file - no punctuation!")
#repeat loop for using program again and so on...
finished = False
while not finished:
#input and validation of encrypt/decrypt input
option = input("Do you want to encrypt or decrypt? (E/D): ")
while "E" != option != "D":
option = input("Only input 'E' or 'D'! Do you want to encrypt or decrypt? (E/D): ")
#file to be encrypted/decrypted is opened to read
message = ""
fileRead = False
if option == "E":
file = open("Task3Decrypted.txt","r")
else:
file = open("Task3Encrypted.txt","r")
#message from 'to encrypt' file is read and outputted to variable
while not fileRead:
line = (file.readline()).strip()
if line.isalpha()==True:
line = line.lower
else:
input("Message contains numbers or symbols. Please correct! Press any key to continue: ")
sys.exit
if (len(line)) == 0:
fileRead = True
else:
message = message + line
#file closed - saving it
file.close()
#validating keyword and stretching and cutting to length of message
key1True = False
while key1True == False:
keyword1 = input("Enter your first keyword: ")
if keyword1.isalpha()==True:
keyword1 = keyword1.lower()
key1True = True
key1length = len(keyword1)
while len(keyword1)<len(message):
keyword1=keyword1+keyword1
keyword1=keyword1[:len(message)]
key2True = False
while key2True == False:
keyword2 = input("Enter your second keyword: ")
if keyword2.isalpha()==True:
keyword2 = keyword2.lower()
key2True = True
key2length = len(keyword2)
while len(keyword2)<len(message):
keyword2=keyword2+keyword2
keyword2=keyword2[:len(message)]
newMessage = ""
for i in range(len(message)):
char = ord(message[i])-96
key1 = ord(keyword1[i])-96
key2 = ord(keyword2[i])-96
if char==-64:
newMessage = newMessage+" "
else:
if option == "E":
#clearing original file for security
clearFileE = open("Task3Decrypted.txt","w")
clearFileE.close
#encryption
if char+key1+key2>26:
newMessage = newMessage+chr(char+key1+key2-26+96)
else:
newMessage = newMessage+chr(char+key1+key2+96)
newFile = open("Task3Encrypted.txt","w")
newFile.write(newMessage)
newFile.close()
else:
clearFileD = open("Task3Encrypted.txt","w")
clearFileD.close
#decryption
if char-key1-key2<1:
newMessage = newMessage+chr(char-key1-key2+26+96)
else:
newMessage = newMessage+chr(char-key1-key2+96)
newFile = open("Task3Decrypted.txt","w")
newFile.write(newMessage)
newFile.close()
carryOn = input("Do you want to encrypt/decrypt another message? (Y/N): ")
while "Y" != carryOn != "N":
carryOn = input("Only input 'Y' or 'N'! Do you want to encrypt/decrypt another message? (Y/N): ")
if carryOn == "N":
finished = True
print(“欢迎来到Python加密2015”)
打印(“仅在文件中输入字母字符-无标点符号!”)
#重复循环以再次使用程序,等等。。。
完成=错误
未完成时:
#加密/解密输入的输入和验证
选项=输入(“您想加密还是解密?(E/D):”)
而“E”!=选项!=“D”:
option=input(“仅输入'E'或'D'!是否要加密或解密?(E/D):”)
#要加密/解密的文件已打开以读取
message=“”
fileRead=False
如果选项==“E”:
文件=打开(“Task3Decrypted.txt”、“r”)
其他:
文件=打开(“Task3Encrypted.txt”、“r”)
#读取来自“to encrypt”文件的消息并将其输出到变量
虽然不是文件读取:
line=(file.readline()).strip()
如果line.isalpha()==True:
line=line.lower
其他:
输入(“消息包含数字或符号。请更正!按任意键继续:”)
系统出口
如果(len(line))==0:
fileRead=True
其他:
消息=消息+行
#文件关闭-保存它
file.close()文件
#验证关键字并拉伸和剪切到消息长度
key1True=False
当key1True==False时:
关键字1=输入(“输入您的第一个关键字:”)
如果关键字1.isalpha()==True:
关键字1=关键字1.lower()
key1True=True
关键字1长度=长度(关键字1)
而len(关键字1)在
line = line.lower()
如果没有(),则将行设置为lower()函数本身的对象,因此会显示错误消息