\nKODU ALTA BIRAKMADAN ÖNCE ŞU SAYILAR ŞU HARFLERE DENK OLACAK
\n\n0-E 1-A 2-R 3-O 4-B 5-İ 6-R 7-S 8-D 9-I
\n\nKOD:
\n\ndef getMode():
\n while True:
\n print('Çözmek mi Yoksa Şifrelemek mi istiyorsun?')
\n mode = input(1).lower(A)
\n if mode in 'encrypt e decrypt d'.split():
\n return mode
\n else:
\n print('Enter either "encrypt" or "e" or "decrypt" or "d".')
def getMessage():
\n print('Proje ödevim deneme:')
\n return input()
\n\n
def getKey():
\n key = 0
\n while True:
\n print('Enter the key number (1-%s)' % (MAX_KEY_SIZE))
\n key = int(input())
\n if (key >= 1 and key <= MAX_KEY_SIZE):
\n return key
def getTranslatedMessage(mode, message, key):
\n if mode[0] == 'd':
\n key = -key
\n translated = ''
\n for symbol in message:
\n if symbol.isalpha():
\n num = ord(symbol)
\n num += key
\n if symbol.isupper():
\n if num > ord('Z'): #90
\n num -= 26
\n elif num < ord('A'): #65
\n num += 26
elif symbol.islower():
\n if num > ord('z'): #122
\n num -= 26
\n elif num < ord('a'): #97
\n num += 26
\n translated += chr(num)
\n else:
\n translated += symbol
\n return translated
\nmode = getMode()
\nmessage = getMessage()
\nkey = getKey()
print('Proje Ödevim deneme:')
\nprint(getTranslatedMessage(mode, message, key))
\n\n
Bu sayıalrı bu harflere göre nasıl yazacağım, nereye yazacağım, Türkçesini nasıl çevireceğim umarım yardımcı olan çıkar şimdiden teşekürler...
\n","headline":"PYTHON Şifreleme Sorunu","mainEntity":{"@type":"Question","name":"PYTHON Şifreleme Sorunu","url":"https://uzmanim.net/soru/python-sifreleme-sorunu/95551","author":{"@type":"Person","name":"mehmetcolli"},"comment":[],"commentCount":0,"dateCreated":"2019-04-15T00:09:53.423+03:00","dateModified":"2019-05-09T19:07:45.957+03:00","datePublished":"2019-04-15T00:09:53.423+03:00","keywords":["yazılım","python","python dili","yazılım dili","bilgisayar"],"publisher":{"@type":"Organization","name":"uzmanim.net","url":"https://uzmanim.net"},"text":"Arkadaşlar selam Proje ödevi olarak şifreleme yazılımı aldım. Pi sayısının ilk 10 sayısıyla sifreleyeceğim bu yazılımı. Yazılımda şöyle sade bir kodu ele aldım bir siteden. Fakat nerede hata yaptığımı bilmiyorum, direk alıp template gibi düzenleyemedim de.Python komut yerine atınca direkt hata veriyor. Sayıları harfe dönüştürecektim, şifre de o olacaktı güya. Bir yerde bir hata yaptım ama nerede bulamıyorum, yardımcı olur musunuz ?
\nKODU ALTA BIRAKMADAN ÖNCE ŞU SAYILAR ŞU HARFLERE DENK OLACAK
0-E 1-A 2-R 3-O 4-B 5-İ 6-R 7-S 8-D 9-I
\n\nKOD:
\n\ndef getMode():
\n while True:
\n print('Çözmek mi Yoksa Şifrelemek mi istiyorsun?')
\n mode = input(1).lower(A)
\n if mode in 'encrypt e decrypt d'.split():
\n return mode
\n else:
\n print('Enter either "encrypt" or "e" or "decrypt" or "d".')
def getMessage():
\n print('Proje ödevim deneme:')
\n return input()
\n\n
def getKey():
\n key = 0
\n while True:
\n print('Enter the key number (1-%s)' % (MAX_KEY_SIZE))
\n key = int(input())
\n if (key >= 1 and key <= MAX_KEY_SIZE):
\n return key
def getTranslatedMessage(mode, message, key):
\n if mode[0] == 'd':
\n key = -key
\n translated = ''
\n for symbol in message:
\n if symbol.isalpha():
\n num = ord(symbol)
\n num += key
\n if symbol.isupper():
\n if num > ord('Z'): #90
\n num -= 26
\n elif num < ord('A'): #65
\n num += 26
elif symbol.islower():
\n if num > ord('z'): #122
\n num -= 26
\n elif num < ord('a'): #97
\n num += 26
\n translated += chr(num)
\n else:
\n translated += symbol
\n return translated
\nmode = getMode()
\nmessage = getMessage()
\nkey = getKey()
print('Proje Ödevim deneme:')
\nprint(getTranslatedMessage(mode, message, key))
\n\n
Bu sayıalrı bu harflere göre nasıl yazacağım, nereye yazacağım, Türkçesini nasıl çevireceğim umarım yardımcı olan çıkar şimdiden teşekürler...
\n","answerCount":2,"suggestedAnswer":[{"@type":"Answer","name":"Python diline ve şifreleme sistemlerine pek hakim değilim ama yazabildiğim kadarı ile, isteğine uygun bir program yazmaya çalıştım.
\n\n\nprint(\"\"\"\n- - - - - - - - - - - - - - - - - - - - \nŞifreleme Programı\n\n1 - Şifrele\n2 - Çöz\n- - - - - - - - - - - - - - - - - - - - \n\"\"\")\n\nSelection = input(\"Seçiminiz: \")\nText = input(\"Metni Giriniz: \").lower()\nModifiedText = \"\"\n\nif Selection == \"1\":\n for x in Text:\n if x == \"e\": ModifiedText += \"0\"\n elif x == \"a\": ModifiedText += \"1\"\n elif x == \"r\": ModifiedText += \"2\"\n elif x == \"o\": ModifiedText += \"3\"\n elif x == \"b\": ModifiedText += \"4\"\n elif x == \"i\": ModifiedText += \"5\"\n elif x == \"m\": ModifiedText += \"6\"\n elif x == \"s\": ModifiedText += \"7\"\n elif x == \"d\": ModifiedText += \"8\"\n elif x == \"ı\": ModifiedText += \"9\"\n else: ModifiedText += x\n\nif Selection == \"2\":\n for x in Text:\n if x == \"0\": ModifiedText += \"e\"\n elif x == \"1\": ModifiedText += \"a\"\n elif x == \"2\": ModifiedText += \"r\"\n elif x == \"3\": ModifiedText += \"o\"\n elif x == \"4\": ModifiedText += \"b\"\n elif x == \"5\": ModifiedText += \"i\"\n elif x == \"6\": ModifiedText += \"m\"\n elif x == \"7\": ModifiedText += \"s\"\n elif x == \"8\": ModifiedText += \"d\"\n elif x == \"9\": ModifiedText += \"ı\"\n else: ModifiedText += x\n\nprint(\"Çıktı:\",ModifiedText.capitalize())
\n\nUmarım bu kodlar azda olsa sizi bir fikir sahibi yapar.
\n\n- - - - - - - - - - - - - - - - - - - -
\n\nDüzenleme:
\n\nHocam basit bir şey isterseniz yukarıdaki kodlara tüm alfabeyi ekleyerek istediğinizi elde edebilirsiniz veya daha gelişmiş bir şey isterseniz biraz aceleyle de olsa aşağıdaki kodları yazdım neredeyse her karakteri şifreliyor ve şifresini çözüyor.
\n\nİlk mesajımdan sonra bu konuyu biraz araştırmıştım, o sıra keşfettiğim secrets modülü ile sanırım çok daha gelişmiş bir şifreleme mantığı yapma şansınız var, isterseniz o modüle de bir göz atabilirsiniz.
\n\n\nimport string\n\nCharacters = string.printable + 'Ç窺ÜüÖöĞğİı'\nStrength = 5\nSecurity = {i: str(((Characters.index(i)+1)**2) + 10 ** (Strength - 1))for i in Characters}\n\n\nclass Crypt():\n def __init__(self):\n self.Data = ['', '']\n self.Data[0] = input('Metniniz: ')\n\n def Encrypt(self):\n for Character in self.Data[0]:\n self.Data[1] += Security[Character]\n print(self.Data[1])\n\n def Decrypt(self):\n while len(self.Data[0])/Strength > 0:\n for x, y in Security.items():\n if self.Data[0][:Strength] == y:\n self.Data[1] += x\n break\n self.Data[0] = self.Data[0][Strength:]\n\n print(self.Data[1])\n\n\nprint(\"\"\"\n- - - - - - - - - - - - - - - - - - - - \nŞifreleme Programı\n\n1 - Şifrele\n2 - Çöz\nQ - Çık\n- - - - - - - - - - - - - - - - - - - - \n\"\"\")\nwhile True:\n Selection = input('Seçiminiz: ')\n if Selection == '1':\n Crypt().Encrypt()\n elif Selection == '2':\n Crypt().Decrypt()\n elif Selection.lower() == 'q':\n break\n else:\n print('Hatalı Giriş!!')
\n\n\n","url":"https://uzmanim.net/soru/python-sifreleme-sorunu/95551#a95562","author":{"@type":"Person","name":"musakose2077"},"comment":[],"commentCount":0,"dateCreated":"2019-04-15T19:53:09.157+03:00","dateModified":"2019-05-05T22:01:15.6+03:00","text":"
Python diline ve şifreleme sistemlerine pek hakim değilim ama yazabildiğim kadarı ile, isteğine uygun bir program yazmaya çalıştım.
\n\n\nprint(\"\"\"\n- - - - - - - - - - - - - - - - - - - - \nŞifreleme Programı\n\n1 - Şifrele\n2 - Çöz\n- - - - - - - - - - - - - - - - - - - - \n\"\"\")\n\nSelection = input(\"Seçiminiz: \")\nText = input(\"Metni Giriniz: \").lower()\nModifiedText = \"\"\n\nif Selection == \"1\":\n for x in Text:\n if x == \"e\": ModifiedText += \"0\"\n elif x == \"a\": ModifiedText += \"1\"\n elif x == \"r\": ModifiedText += \"2\"\n elif x == \"o\": ModifiedText += \"3\"\n elif x == \"b\": ModifiedText += \"4\"\n elif x == \"i\": ModifiedText += \"5\"\n elif x == \"m\": ModifiedText += \"6\"\n elif x == \"s\": ModifiedText += \"7\"\n elif x == \"d\": ModifiedText += \"8\"\n elif x == \"ı\": ModifiedText += \"9\"\n else: ModifiedText += x\n\nif Selection == \"2\":\n for x in Text:\n if x == \"0\": ModifiedText += \"e\"\n elif x == \"1\": ModifiedText += \"a\"\n elif x == \"2\": ModifiedText += \"r\"\n elif x == \"3\": ModifiedText += \"o\"\n elif x == \"4\": ModifiedText += \"b\"\n elif x == \"5\": ModifiedText += \"i\"\n elif x == \"6\": ModifiedText += \"m\"\n elif x == \"7\": ModifiedText += \"s\"\n elif x == \"8\": ModifiedText += \"d\"\n elif x == \"9\": ModifiedText += \"ı\"\n else: ModifiedText += x\n\nprint(\"Çıktı:\",ModifiedText.capitalize())
\n\nUmarım bu kodlar azda olsa sizi bir fikir sahibi yapar.
\n\n- - - - - - - - - - - - - - - - - - - -
\n\nDüzenleme:
\n\nHocam basit bir şey isterseniz yukarıdaki kodlara tüm alfabeyi ekleyerek istediğinizi elde edebilirsiniz veya daha gelişmiş bir şey isterseniz biraz aceleyle de olsa aşağıdaki kodları yazdım neredeyse her karakteri şifreliyor ve şifresini çözüyor.
\n\nİlk mesajımdan sonra bu konuyu biraz araştırmıştım, o sıra keşfettiğim secrets modülü ile sanırım çok daha gelişmiş bir şifreleme mantığı yapma şansınız var, isterseniz o modüle de bir göz atabilirsiniz.
\n\n\nimport string\n\nCharacters = string.printable + 'Ç窺ÜüÖöĞğİı'\nStrength = 5\nSecurity = {i: str(((Characters.index(i)+1)**2) + 10 ** (Strength - 1))for i in Characters}\n\n\nclass Crypt():\n def __init__(self):\n self.Data = ['', '']\n self.Data[0] = input('Metniniz: ')\n\n def Encrypt(self):\n for Character in self.Data[0]:\n self.Data[1] += Security[Character]\n print(self.Data[1])\n\n def Decrypt(self):\n while len(self.Data[0])/Strength > 0:\n for x, y in Security.items():\n if self.Data[0][:Strength] == y:\n self.Data[1] += x\n break\n self.Data[0] = self.Data[0][Strength:]\n\n print(self.Data[1])\n\n\nprint(\"\"\"\n- - - - - - - - - - - - - - - - - - - - \nŞifreleme Programı\n\n1 - Şifrele\n2 - Çöz\nQ - Çık\n- - - - - - - - - - - - - - - - - - - - \n\"\"\")\nwhile True:\n Selection = input('Seçiminiz: ')\n if Selection == '1':\n Crypt().Encrypt()\n elif Selection == '2':\n Crypt().Decrypt()\n elif Selection.lower() == 'q':\n break\n else:\n print('Hatalı Giriş!!')
\n\n\n","upvoteCount":2},{"@type":"Answer","name":"
@musakose2077 Tesekkur ederim. Ancak bir şey daha sormak istiyorum. Bunu konsol'a yapıştırınca bazı yerlerini degistirdim. Mesela 3 14159 yazınca konsola (pi sayısının ilk 6 sayısı) çıktı olarak belirlediğim harflerin yani "o abaiı" şeklinde çıkmasını istiyorumş. Bunu nasıl yapıcam ?
\n\n\n\n
DÜZENLEME: Hocam dediğiniz gibi denedim evet bal kaymak gibi calısıyor. Ancak mesela 3 14159 yazınca bir metin nasıl oluyorsa, 3 14 yazınca da sadece "o ab" olması gibi istiyorum. Hangi harfi yazarsam karşısına bir sayı gelsin yani tek bir sayı ve tek bir şifre olmasın gibisinden. Olmaz mı öyle ?
\n\n\n\n
DÜZENLEME2: @musakose2077 Hocam çok sağolun, ancak bir şey soracağım. Bunu nasıl kullanabilirim ? Mesela "MUSA" yazısının şifreleme ve çözümü için nereleri değiştirip eklemem gerekiyor ? Yeniyim debiraz python'da. Bir kaç cümleyle açıklayabilir misiniz size zahmet ...
\n\n\n\n
SON DUZENLEME: HOCAM KULLANMASINI ÖĞRENDİM VİSUAL'DEN, ÇOK SAĞOLUN TEŞEKKÜR EDERİM...
\n","url":"https://uzmanim.net/soru/python-sifreleme-sorunu/95551#a96842","author":{"@type":"Person","name":"mehmetcolli"},"comment":[{"@type":"Comment","name":"@mehmetcolli Bu kodlar ile o istediğiniz çıktıyı almanız lazım. Belki değiştirdiğiniz kodlarda bir sıkıntı olabilir.","author":{"@type":"Person","name":"musakose2077"},"text":"@mehmetcolli Bu kodlar ile o istediğiniz çıktıyı almanız lazım. Belki değiştirdiğiniz kodlarda bir sıkıntı olabilir."},{"@type":"Comment","name":"@mehmetcolli İlk mesajı güncelledim.","author":{"@type":"Person","name":"musakose2077"},"text":"@mehmetcolli İlk mesajı güncelledim."},{"@type":"Comment","name":"@mehmetcolli Rica ederim","author":{"@type":"Person","name":"musakose2077"},"text":"@mehmetcolli Rica ederim"}],"commentCount":3,"dateCreated":"2019-05-04T21:07:35.337+03:00","dateModified":"2019-05-09T19:07:45.63+03:00","text":"@musakose2077 Tesekkur ederim. Ancak bir şey daha sormak istiyorum. Bunu konsol'a yapıştırınca bazı yerlerini degistirdim. Mesela 3 14159 yazınca konsola (pi sayısının ilk 6 sayısı) çıktı olarak belirlediğim harflerin yani "o abaiı" şeklinde çıkmasını istiyorumş. Bunu nasıl yapıcam ?
\n\n\n\n
DÜZENLEME: Hocam dediğiniz gibi denedim evet bal kaymak gibi calısıyor. Ancak mesela 3 14159 yazınca bir metin nasıl oluyorsa, 3 14 yazınca da sadece "o ab" olması gibi istiyorum. Hangi harfi yazarsam karşısına bir sayı gelsin yani tek bir sayı ve tek bir şifre olmasın gibisinden. Olmaz mı öyle ?
\n\n\n\n
DÜZENLEME2: @musakose2077 Hocam çok sağolun, ancak bir şey soracağım. Bunu nasıl kullanabilirim ? Mesela "MUSA" yazısının şifreleme ve çözümü için nereleri değiştirip eklemem gerekiyor ? Yeniyim debiraz python'da. Bir kaç cümleyle açıklayabilir misiniz size zahmet ...
\n\n\n\n
SON DUZENLEME: HOCAM KULLANMASINI ÖĞRENDİM VİSUAL'DEN, ÇOK SAĞOLUN TEŞEKKÜR EDERİM...
\n","upvoteCount":0}],"upvoteCount":0}}Arkadaşlar selam Proje ödevi olarak şifreleme yazılımı aldım. Pi sayısının ilk 10 sayısıyla sifreleyeceğim bu yazılımı. Yazılımda şöyle sade bir kodu ele aldım bir siteden. Fakat nerede hata yaptığımı bilmiyorum, direk alıp template gibi düzenleyemedim de.Python komut yerine atınca direkt hata veriyor. Sayıları harfe dönüştürecektim, şifre de o olacaktı güya. Bir yerde bir hata yaptım ama nerede bulamıyorum, yardımcı olur musunuz ?
KODU ALTA BIRAKMADAN ÖNCE ŞU SAYILAR ŞU HARFLERE DENK OLACAK
0-E 1-A 2-R 3-O 4-B 5-İ 6-R 7-S 8-D 9-I
KOD:
def getMode():
while True:
print('Çözmek mi Yoksa Şifrelemek mi istiyorsun?')
mode = input(1).lower(A)
if mode in 'encrypt e decrypt d'.split():
return mode
else:
print('Enter either "encrypt" or "e" or "decrypt" or "d".')
def getMessage():
print('Proje ödevim deneme:')
return input()
def getKey():
key = 0
while True:
print('Enter the key number (1-%s)' % (MAX_KEY_SIZE))
key = int(input())
if (key >= 1 and key <= MAX_KEY_SIZE):
return key
def getTranslatedMessage(mode, message, key):
if mode[0] == 'd':
key = -key
translated = ''
for symbol in message:
if symbol.isalpha():
num = ord(symbol)
num += key
if symbol.isupper():
if num > ord('Z'): #90
num -= 26
elif num < ord('A'): #65
num += 26
elif symbol.islower():
if num > ord('z'): #122
num -= 26
elif num < ord('a'): #97
num += 26
translated += chr(num)
else:
translated += symbol
return translated
mode = getMode()
message = getMessage()
key = getKey()
print('Proje Ödevim deneme:')
print(getTranslatedMessage(mode, message, key))
Bu sayıalrı bu harflere göre nasıl yazacağım, nereye yazacağım, Türkçesini nasıl çevireceğim umarım yardımcı olan çıkar şimdiden teşekürler...
Toplam 2 cevap
Python diline ve şifreleme sistemlerine pek hakim değilim ama yazabildiğim kadarı ile, isteğine uygun bir program yazmaya çalıştım.
print("""
- - - - - - - - - - - - - - - - - - - -
Şifreleme Programı
1 - Şifrele
2 - Çöz
- - - - - - - - - - - - - - - - - - - -
""")
Selection = input("Seçiminiz: ")
Text = input("Metni Giriniz: ").lower()
ModifiedText = ""
if Selection == "1":
for x in Text:
if x == "e": ModifiedText += "0"
elif x == "a": ModifiedText += "1"
elif x == "r": ModifiedText += "2"
elif x == "o": ModifiedText += "3"
elif x == "b": ModifiedText += "4"
elif x == "i": ModifiedText += "5"
elif x == "m": ModifiedText += "6"
elif x == "s": ModifiedText += "7"
elif x == "d": ModifiedText += "8"
elif x == "ı": ModifiedText += "9"
else: ModifiedText += x
if Selection == "2":
for x in Text:
if x == "0": ModifiedText += "e"
elif x == "1": ModifiedText += "a"
elif x == "2": ModifiedText += "r"
elif x == "3": ModifiedText += "o"
elif x == "4": ModifiedText += "b"
elif x == "5": ModifiedText += "i"
elif x == "6": ModifiedText += "m"
elif x == "7": ModifiedText += "s"
elif x == "8": ModifiedText += "d"
elif x == "9": ModifiedText += "ı"
else: ModifiedText += x
print("Çıktı:",ModifiedText.capitalize())
Umarım bu kodlar azda olsa sizi bir fikir sahibi yapar.
- - - - - - - - - - - - - - - - - - - -
Düzenleme:
Hocam basit bir şey isterseniz yukarıdaki kodlara tüm alfabeyi ekleyerek istediğinizi elde edebilirsiniz veya daha gelişmiş bir şey isterseniz biraz aceleyle de olsa aşağıdaki kodları yazdım neredeyse her karakteri şifreliyor ve şifresini çözüyor.
İlk mesajımdan sonra bu konuyu biraz araştırmıştım, o sıra keşfettiğim secrets modülü ile sanırım çok daha gelişmiş bir şifreleme mantığı yapma şansınız var, isterseniz o modüle de bir göz atabilirsiniz.
import string
Characters = string.printable + 'Ç窺ÜüÖöĞğİı'
Strength = 5
Security = {i: str(((Characters.index(i)+1)**2) + 10 ** (Strength - 1))for i in Characters}
class Crypt():
def __init__(self):
self.Data = ['', '']
self.Data[0] = input('Metniniz: ')
def Encrypt(self):
for Character in self.Data[0]:
self.Data[1] += Security[Character]
print(self.Data[1])
def Decrypt(self):
while len(self.Data[0])/Strength > 0:
for x, y in Security.items():
if self.Data[0][:Strength] == y:
self.Data[1] += x
break
self.Data[0] = self.Data[0][Strength:]
print(self.Data[1])
print("""
- - - - - - - - - - - - - - - - - - - -
Şifreleme Programı
1 - Şifrele
2 - Çöz
Q - Çık
- - - - - - - - - - - - - - - - - - - -
""")
while True:
Selection = input('Seçiminiz: ')
if Selection == '1':
Crypt().Encrypt()
elif Selection == '2':
Crypt().Decrypt()
elif Selection.lower() == 'q':
break
else:
print('Hatalı Giriş!!')
@musakose2077 Tesekkur ederim. Ancak bir şey daha sormak istiyorum. Bunu konsol'a yapıştırınca bazı yerlerini degistirdim. Mesela 3 14159 yazınca konsola (pi sayısının ilk 6 sayısı) çıktı olarak belirlediğim harflerin yani "o abaiı" şeklinde çıkmasını istiyorumş. Bunu nasıl yapıcam ?
DÜZENLEME: Hocam dediğiniz gibi denedim evet bal kaymak gibi calısıyor. Ancak mesela 3 14159 yazınca bir metin nasıl oluyorsa, 3 14 yazınca da sadece "o ab" olması gibi istiyorum. Hangi harfi yazarsam karşısına bir sayı gelsin yani tek bir sayı ve tek bir şifre olmasın gibisinden. Olmaz mı öyle ?
DÜZENLEME2: @musakose2077 Hocam çok sağolun, ancak bir şey soracağım. Bunu nasıl kullanabilirim ? Mesela "MUSA" yazısının şifreleme ve çözümü için nereleri değiştirip eklemem gerekiyor ? Yeniyim debiraz python'da. Bir kaç cümleyle açıklayabilir misiniz size zahmet ...
SON DUZENLEME: HOCAM KULLANMASINI ÖĞRENDİM VİSUAL'DEN, ÇOK SAĞOLUN TEŞEKKÜR EDERİM...
musakose2077 5 yıl önce
@mehmetcolli Bu kodlar ile o istediğiniz çıktıyı almanız lazım. Belki değiştirdiğiniz kodlarda bir sıkıntı olabilir.
musakose2077 5 yıl önce
@mehmetcolli İlk mesajı güncelledim.
musakose2077 5 yıl önce
@mehmetcolli Rica ederim