1
두 번째 게시물 (동일한 코드에서). 그러나 이번에는 다른 문제입니다. 그것은 아주 자주 일어날 지 모르지만 그것은 왜 저에게 큰 곤경에 처합니다. 이것이 내가 내 수준에서 설정 한 작업 t 약간의 연장이기 때문에 파일을 암호화하고 쓸 때 Python에서 UnicodeEncodeError가 발생했습니다.
import random
phrase = input('Phrase to be encrypted: ')
shift_key = input("Shift keyword, Word only: ")
Encryption_Base = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,./;:<>?'@#~]}[{=+-_)(*&^%$£!`¬\|"
key_encryption = random.randint(0, 94)
Cipher = ''
for c in shift_key:
if c in Encryption_Base:
Cipher += Encryption_Base[(Encryption_Base.index(c)+key_encryption)%(len(Encryption_Base))]
def Keyword_Encryption(key, phrase):
if len(phrase) > len(key):
while len(phrase) > len(key):
length_to_add = len(phrase) - len(key)
key = key + key[0:length_to_add]
elif len(phrase) < len(key):
while len(phrase) < len(key):
length_to_sub = len(key) - (len(key) - len(phrase))
key = key[0:length_to_sub]
else:
pass
shifted_phrase = ''
for i in range(len(phrase)):
new_letter = (ord(key[i]) - 96) + (ord(phrase[i]) - 96) + 96
if new_letter > 1220:
new_letter = chr(new_letter - 26)
else:
new_letter = chr(new_letter)
shifted_phrase = shifted_phrase + new_letter
return shifted_phrase
result = Keyword_Encryption(Cipher, phrase)
print (" ")
print (":-) " * 3 + "Encrypting Phrase 10%... " + ":-) " * 3)
print (":-) " * 3 + "Encrypting Phrase 20%... " + ":-) " * 3)
print (":-) " * 3 + "Encrypting Phrase 30%... " + ":-) " * 3)
print (":-) " * 3 + "Encrypting Phrase 40%... " + ":-) " * 3)
print (":-) " * 3 + "Encrypting Phrase 50%... " + ":-) " * 3)
print (":-) " * 3 + "Encrypting Phrase 60%... " + ":-) " * 3)
print (":-) " * 3 + "Encrypting Phrase 70%... " + ":-) " * 3)
print (":-) " * 3 + "Encrypting Phrase 80%... " + ":-) " * 3)
print (":-) " * 3 + "Encrypting Phrase 90%... " + ":-) " * 3)
print (":-) " * 3 + "Encrypting Phrase 100%... " + ":-) " * 3)
print (":-) " * 3 + "Checking Security of encrypted phrase.... " + ":-) " * 3)
print (":-) " * 3 + "Done! " + ":-) " * 3)
print (" ")
print ('Here is your Encrypted Phrase:' + (result) + (Cipher))
file = open("Encrypted.txt", "w")
file.write (str(result) + " " + (Cipher))
file.close()
사전에 대단히 감사합니다 이것은 출력 및 오류입니다 :
Phrase to be encrypted: Hello world
Shift keyword, Word only: Hello
:-) :-) :-) Encrypting Phrase 10%... :-) :-) :-)
:-) :-) :-) Encrypting Phrase 20%... :-) :-) :-)
:-) :-) :-) Encrypting Phrase 30%... :-) :-) :-)
:-) :-) :-) Encrypting Phrase 40%... :-) :-) :-)
:-) :-) :-) Encrypting Phrase 50%... :-) :-) :-)
:-) :-) :-) Encrypting Phrase 60%... :-) :-) :-)
:-) :-) :-) Encrypting Phrase 70%... :-) :-) :-)
:-) :-) :-) Encrypting Phrase 80%... :-) :-) :-)
:-) :-) :-) Encrypting Phrase 90%... :-) :-) :-)
:-) :-) :-) Encrypting Phrase 100%... :-) :-) :-)
:-) :-) :-) Checking Security of encrypted phrase.... :-) :-) :-)
:-) :-) :-) Done! :-) :-) :-)
Here is your Encrypted Phrase:I?j!Qgea:~~[
Traceback (most recent call last):
File "C:\Users\Isaac Scarisbrick\Downloads\Keyword Cipher_1.py", line 60, in <module>
file.write (str(result) + " " + (Cipher))
File "C:\Users\Isaac Scarisbrick\AppData\Local\Programs\Python\Python35-32\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 2-3: character maps to <undefined>
그리고 이것은 내 코드입니다 수업. 파이썬에서 만들어진 암호화 프로그램이 있었기 때문에 이전에 보았던 코드 스 니펫이 있습니다. 시간 내 주셔서 감사합니다 :).
편집 :이 때로는 도움도이 오류가 발생하는 경우 :
Phrase to be encrypted: Hello World
Shift keyword, Word only: Hello
Traceback (most recent call last):
File "C:\Users\Isaac Scarisbrick\Downloads\Keyword Cipher_1.py", line 42, in <module>
result = Keyword_Encryption(Cipher, phrase)
File "C:\Users\Isaac Scarisbrick\Downloads\Keyword Cipher_1.py", line 37, in Keyword_Encryption
new_letter = chr(new_letter)
ValueError: chr() arg not in range(0x110000)
이 오류를 발생시키는 암호화하려는 구문의 예를 제공 할 수 있습니까? 외국 유니 코드 문자를 암호화하려고 할 수 있습니다. – PrestonM
소스 상단에'#coding : cp1252'를 추가하면 프로그램을 실행할 수 있습니다. 흥미로운 성 : –
건배 남자. 그걸 넣었어야 했어. 죄송합니다. – LineDot