1

そのため、現在、過去数時間問題が発生しています。私は多くのスタック オーバーフローの投稿に目を通し、すべての提案を試しました。私の問題は、テキスト ファイルから単語を取得して 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
4

1 に答える 1