Sezar Deşifreleme

import ttkbootstrap as ttk
import tkinter as tk
from ttkbootstrap.constants import *
from tkinter.filedialog import asksaveasfilename

harfler = {0:"a",1:"b",2:"c",3:"ç",4:"d",5:"e",6:"f",7:"g",8:"ğ",9:"h",10:"ı",11:"i",12:"j",13:"k",14:"l",15:"m",16:"n",17:"o",18:"ö",
           19:"p",20:"r",21:"s",22:"ş",23:"t",24:"u",25:"ü",26:"v",27:"y",28:"z"}

def cozumle():
    global cozumlenecek_metin,cozumlenmis_metin,spnbx,cozumle_btn
    sira = 1
    metin = cozumlenecek_metin.get("1.0",tk.END)
    cozumlenecek_metin.delete("1.0",tk.END)
    cozumlenmis_metin.delete("1.0",tk.END)
    cozumle_btn["state"] = DISABLED
    yeni_metin = ""
    if len(metin) > 0:
        while sira <= int(spnbx.get()):
            for harf in metin.lower():
                for i in harfler.keys():
                    if harf not in harfler.values():
                        yeni_metin += harf
                        break
                    if harf == harfler[i]:
                        if i + sira >= len(harfler):
                            mod = abs(29 - (i + sira))
                            yeni_metin += harfler[mod]
                        else:
                            yeni_metin += harfler[i + sira]
                        continue
            sira += 1
            yeni_metin += " - {} \n".format(sira - 1)
            cozumlenmis_metin.insert(tk.END,yeni_metin)
            yeni_metin = ""
        cozumle_btn["state"] = ACTIVE
    else:
        print("Çözümlenecek bir metin giriniz.")
        cozumle_btn["state"] = ACTIVE

def kaydet():
    dizin = asksaveasfilename()
    with open("{}.txt".format(dizin),"w") as ds:
        ds.write(cozumlenmis_metin.get("1.0",tk.END))
        ds.close()

pencere = tk.Tk()
ttk.Style("solar")
pencere.title("Sezar Çözücü")
pencere.geometry("600x480")
pencere.resizable(0,0)
cozumlenecek_metin = ttk.Text(width=20)
cozumlenecek_metin.grid(row=0,column=0,padx=10,pady=10)

cozumlenmis_metin = ttk.Text(width=20)
cozumlenmis_metin.grid(row=0,column=1,pady=10)
spnbx = ttk.Spinbox(bootstyle="warning",from_=1,to=29)
spnbx.insert(0,"1")
spnbx.configure(state="readonly")
spnbx.grid(row=0,column=2,padx=10)
cozumle_btn = ttk.Button(text="Çözümle",bootstyle="warning",command=cozumle)
cozumle_btn.grid(row=1,column=0)
kaydet_btn = ttk.Button(text="Kaydet",bootstyle="warning",command=kaydet).grid(row=1,column=1)

pencere.mainloop()