#Zad 1
#szyfr Cezara, klucz;7, dla liter od A do L
'''def kod_na_znak(kod_znaku):
return chr (kod_znaku+ord('A'))
print(kod_na_znak(0+7),kod_na_znak(1+7),kod_na_znak(2+7),kod_na_znak(3+7))'''
#Zad 1
#szyfr Cezara, klucz;3, dla liter od A do Z
'''def kod_na_znak(kod_znaku):
return chr(kod_znaku + ord('A'))
def znak_na_kod(znak):
return ord(znak.upper()) - ord('A')
def zaszyfruj(napis):
wynik = ""
for znak in napis:
kod_znaku = znak_na_kod(znak)
kod_znaku_zaszyfrowany = (kod_znaku + 3) % 26
wynik += kod_na_znak(kod_znaku_zaszyfrowany)
return wynik
print(zaszyfruj("A"))'''
#KOT
#zad3 program deszyfrujący szyfr Cezara, klucz:3
def kod_na_znak(kod_znaku):
return chr(kod_znaku + ord('A'))
def znak_na_kod(znak):
return ord(znak.upper()) - ord('A')
def deszyfruj(napis):
wynik = ''
for znak in napis:
kod_znaku = znak_na_kod(znak)
kod_znaku_odszyfrowany = (kod_znaku - 3) % 26
wynik += kod_na_znak(kod_znaku_odszyfrowany)
return wynik
print(deszyfruj('A'))
print(deszyfruj('B'))
print(deszyfruj('C'))
I1phZCAxCiNzenlmciBDZXphcmEsIGtsdWN6OzcsIGRsYSBsaXRlciBvZCBBIGRvIEwKCicnJ2RlZiBrb2RfbmFfem5hayhrb2Rfem5ha3UpOgoJcmV0dXJuIGNociAoa29kX3puYWt1K29yZCgnQScpKQoJCnByaW50KGtvZF9uYV96bmFrKDArNyksa29kX25hX3puYWsoMSs3KSxrb2RfbmFfem5haygyKzcpLGtvZF9uYV96bmFrKDMrNykpJycnCiNaYWQgMQojc3p5ZnIgQ2V6YXJhLCBrbHVjejszLCBkbGEgbGl0ZXIgb2QgQSBkbyBaCgonJydkZWYga29kX25hX3puYWsoa29kX3puYWt1KToKICAgIHJldHVybiBjaHIoa29kX3puYWt1ICsgb3JkKCdBJykpCgpkZWYgem5ha19uYV9rb2Qoem5hayk6CiAgICByZXR1cm4gb3JkKHpuYWsudXBwZXIoKSkgLSBvcmQoJ0EnKQoKZGVmIHphc3p5ZnJ1aihuYXBpcyk6CiAgICB3eW5payA9ICIiCiAgICBmb3Igem5hayBpbiBuYXBpczoKICAgICAgICBrb2Rfem5ha3UgPSB6bmFrX25hX2tvZCh6bmFrKQogICAgICAgIGtvZF96bmFrdV96YXN6eWZyb3dhbnkgPSAoa29kX3puYWt1ICsgMykgJSAyNgogICAgICAgIHd5bmlrICs9IGtvZF9uYV96bmFrKGtvZF96bmFrdV96YXN6eWZyb3dhbnkpCiAgICByZXR1cm4gd3luaWsKCnByaW50KHphc3p5ZnJ1aigiQSIpKScnJwoKCiNLT1QKI3phZDMgcHJvZ3JhbSBkZXN6eWZydWrEhWN5IHN6eWZyIENlemFyYSwga2x1Y3o6MwpkZWYga29kX25hX3puYWsoa29kX3puYWt1KToKICAgIHJldHVybiBjaHIoa29kX3puYWt1ICsgb3JkKCdBJykpCgpkZWYgem5ha19uYV9rb2Qoem5hayk6CiAgICByZXR1cm4gb3JkKHpuYWsudXBwZXIoKSkgLSBvcmQoJ0EnKQpkZWYgZGVzenlmcnVqKG5hcGlzKToKICAgIHd5bmlrID0gJycKICAgIGZvciB6bmFrIGluIG5hcGlzOgogICAgICAgIGtvZF96bmFrdSA9IHpuYWtfbmFfa29kKHpuYWspCiAgICAgICAga29kX3puYWt1X29kc3p5ZnJvd2FueSA9IChrb2Rfem5ha3UgLSAzKSAlIDI2CiAgICAgICAgd3luaWsgKz0ga29kX25hX3puYWsoa29kX3puYWt1X29kc3p5ZnJvd2FueSkKICAgIHJldHVybiB3eW5pawoKcHJpbnQoZGVzenlmcnVqKCdBJykpICAKcHJpbnQoZGVzenlmcnVqKCdCJykpICAKcHJpbnQoZGVzenlmcnVqKCdDJykpICAK