そのため、現在、過去数時間問題が発生しています。私は多くのスタック オーバーフローの投稿に目を通し、すべての提案を試しました。私の問題は、テキスト ファイルから単語を取得して MD5 暗号化するプログラムがあることです。
fileName = raw_input("> ")
if fileName.endswith(".txt") or fileName.endswith(".lst"):
fopen = open(fileName, 'r')
else:
fileName = fileName + ".txt"
fopen = open(fileName, 'r')
m = hashlib.md5()
for line in fopen:
sleep(1)
m.update(line)
encHash = m.hexdigest()
hashed = [line, encHash]
new_line = []
for elem in hashed:
new_line.extend(elem.strip('\n').split(' '))
searchfile = open("Passwords.txt").read()
if line in searchfile:
print ""
else:
fopen = open("Passwords.txt", 'a')
fopen.write(str(hashed))
fopen.write("\n")
fopen.close
print str(new_line)
ご覧のとおり、出力される改行文字は既に処理済みです。ただし、暗号化されたバージョンの末尾にはまだ \n があります。したがって、「12345」が暗号化される代わりに、「12345\n」が暗号化されます。
rstrip() と strip() を試しました。しかし、うまくいかないようです!どんな助けでも大歓迎です。
ありがとう
ポール
EDIT 何をしたかわかりません。コードを書き直したところ、正常に動作しました。すべての提案をありがとう。
elif choice == "2":
os.system('clear')
fileName = raw_input('Filename: ')
fopen = open(fileName, 'rb')
for line in fopen:
line = line.rstrip('\n')
enc = hashlib.md5()
enc.update(line)
encHash = enc.hexdigest()
hashed = {line:encHash}
fwrite = open('Password.txt', 'a')
hashed = str(hashed)
data = open("Password.txt").read()
if hashed in data:
print hashed
else:
fwrite.write(hashed)
fwrite.write("\n")
fwrite.close
print hashed