Rehber Python ile Password Generator yapmak

Yeni başlayanlar için Python ile yapılan basit uygulamaları yayınlamaya karar verdim umarım beğenirsiniz.

Oluşturulan şifrenin güvenliğini görmek için bu siteyi kullanabilirsiniz ==> Kaspersky: Secure Password Check

Not: Rastegele seçim sırasını bilerek böyle yaptım.

[CODE lang="python" title="Python Password Generator"]
import random

letters = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","y","z"]
letters_uppercase = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","y","z"]
numbers = ["1","2","3","4","5","6","7","8","9","0"]
custom = ["(","=","?","@","!","-",")"]

for i in range(len(letters_uppercase)):
letters_uppercase = letters_uppercase.upper()

random = random.choice(letters) + random.choice(letters_uppercase)+random.choice(letters_uppercase)+ random.choice(numbers)+random.choice(letters_uppercase)+random.choice(letters_uppercase)+random.choice(letters)+random.choice(letters)+ random.choice(numbers)+random.choice(custom)+random.choice(letters_uppercase)+ random.choice(numbers)+random.choice(letters)+random.choice(numbers)+random.choice(numbers)+random.choice(letters_uppercase)
print("You can use this password: "+random)[/CODE]
 
Son düzenleyen: Moderatör:
Eğer Python kursuysa devam edebilirsin. Başka bir dilse o dilde uzmanlaştıktan sonra başka dillere yönelmen daha iyi olacaktır.

Gülme emojisi için yukarıda bir gülen yüz (Eki Görüntüle 1023250 ) olacak orayı kullanabilirsin veya "iki nokta" ile "parantez" işaretini kullanarak yapabilirsin.

Hayır, neden güldünüz onu anlamadım. O kadar zamandır bu forumdayım zaten gülücüğün nasıl atıldığını biliyorum.
 
Hocam, ben de python öğrenmek için sizin gibi rastgele ufak projelerle uğraşmıştım. Hatta tam da sizinle aynı projeyi yapmışım. Gerçi GUI öğrenmek için de uğraşıyordum bir zamanlar. Kivy kullanarak yaptığım rastgele şifre oluşturma programını atıyorum, belki işinize yarar. Kodda hem şifreye ekleyeceğiniz karakter türlerini seçebiliyorsunuz hem de karakterlerin sıralaması da rastgele yerleşiyor. Aynı zamanda karakter sayısını da seçebiliyorsunuz.

[CODE lang="python" title="Python Kodu"]import random as rnd
from kivy.config import Config
Config.set('kivy','window_icon','pwrd.webp')
Config.set('graphics', 'resizable', False)
Config.set('graphics', 'width', '300')
Config.set('graphics', 'height', '300')
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.core.window import Window

from string import ascii_lowercase, ascii_uppercase


Window.clearcolor = (1, 1, 1, 1)
sayilar = "0123456789"
k_harfler_eng = ascii_lowercase
b_harfler_eng = ascii_uppercase
k_harfler_tr = "ığüşöç"
b_harfler_tr = "ĞÜŞİÖÇ"
semboller = "!'+%&/()=?*.,"


class FirstGrid(Widget):
chk_kharf = ObjectProperty(None)
chk_sayi = ObjectProperty(None)
chk_bharf = ObjectProperty(None)
chk_sembol = ObjectProperty(None)
karakter = ObjectProperty(None)
sifre = ObjectProperty(None)
chk_tr = ObjectProperty(None)

def sifrebul(self):
rnd_list = []
if self.chk_sembol.active:
rnd_list.append(semboller)
if self.chk_sayi.active:
rnd_list.append(sayilar)
if self.chk_kharf.active:
if self.chk_tr.active:
rnd_list.append(k_harfler_tr)
rnd_list.append(k_harfler_eng)
else:
rnd_list.append(k_harfler_eng)
if self.chk_bharf.active:
if self.chk_tr.active:
rnd_list.append(b_harfler_tr)
rnd_list.append(b_harfler_eng)
else:
rnd_list.append(b_harfler_eng)
if len(rnd_list) == 0:
self.sifre.text = "Lütfen şifreniz için seçeneklerden birini seçin."
return
sifre = []
karakter = self.karakter.value

for _ in range(karakter):
secim = rnd.randint(0, len(rnd_list) - 1)
secim2 = rnd.randint(0, len(rnd_list[secim]) - 1)
sifre.append(rnd_list[secim][secim2])
self.sifre.text = "".join(sifre)



class Uygulama(App):
def build(self):
self.title = "Şifre Yaratıcı"
self.icon = "pwrd.ico"
return FirstGrid()


if __name__ == "__main__":
Uygulama().run()
[/CODE]


[CODE title="Kivy Kodu"]<FirstGrid>

chk_kharf: chk_kharf
chk_sayi: chk_sayi
chk_bharf: chk_bharf
chk_sembol: chk_sembol
chk_tr: chk_tr
karakter: karakter
sifre: sifre

GridLayout:
cols: 1
size: root.width, root.height

TextInput:
multiline: False
halign: "center"
readonly: True
text: "Şifreniz burada gözükecek."
use_bubble: True
write_tab: False
id: sifre
size_hint: root.width, None
size: 0, 30
font_size: 13

GridLayout:
cols: 2

Label:
text: "Karakter Sayısı: " + str(karakter.value)
color: 0, 0, 0, 1

Slider:
range: 8, 36
id: karakter
step: 1

Label:
text: "Türkçe Karakter: "
color: 0, 0, 0, 1

CheckBox:
active: False
id: chk_tr
color: 0, 0, 0, 1

Label:
text: "Küçük Harf: "
color: 0, 0, 0, 1

CheckBox:
text: "Küçük Harf"
active: True
id: chk_kharf
color: 0, 0, 0, 1

Label:
text: "Sayı: "
color: 0, 0, 0, 1

CheckBox:
text: "Sayı"
active: True
id: chk_sayi
color: 0, 0, 0, 1

Label:
text: "Büyük Harf: "
color: 0, 0, 0, 1

CheckBox:
text: "Büyük Harf"
id: chk_bharf
color: 0, 0, 0, 1

Label:
text: "Sembol: "
color: 0, 0, 0, 1

CheckBox:
text: "Sembol"
id: chk_sembol
color: 0, 0, 0, 1


Button:
text: "Bas"
on_press: root.sifrebul()
size: 75, 50
size_hint: root.width, None[/CODE]

Programın ekran görüntüsü:
1621017342878.png
 
Hocam, ben de python öğrenmek için sizin gibi rastgele ufak projelerle uğraşmıştım. Hatta tam da sizinle aynı projeyi yapmışım. Gerçi GUI öğrenmek için de uğraşıyordum bir zamanlar. Kivy kullanarak yaptığım rastgele şifre oluşturma programını atıyorum, belki işinize yarar. Kodda hem şifreye ekleyeceğiniz karakter türlerini seçebiliyorsunuz hem de karakterlerin sıralaması da rastgele yerleşiyor. Aynı zamanda karakter sayısını da seçebiliyorsunuz.

Programın ekran görüntüsü:
Eki Görüntüle 1023598
Elinize sağlık hocam güzel olmuş, şuan başlangıç düzeyine hitap etmeye çalıştığım için terminal üzerinden devam edeceğim, ileride GUI ile paylaşmaya başlarım herhalde.
 
Elinize sağlık hocam güzel olmuş, şu an başlangıç düzeyine hitap etmeye çalıştığım için terminal üzerinden devam edeceğim, ileride GUI ile paylaşmaya başlarım herhalde.

Hocam selam. Bende Python'a başladım. Hangi programları kullanmalıyım?
VS Code mi?
Microsoft Visual Studio mu?
Normal Python yüklü bu arada.
 
Hocam selam. Bende Python'a başladım. Hangi programları kullanmalıyım?
VS Code mi?
Microsoft Visual Studio mu?
Normal Python yüklü bu arada.
Visual Studio'nun Python için gereksiz olduğunu düşünüyorum o yüzden VS Code öneririm (bende kullanıyorum).

VS Code istemezseniz Pycharm da kullanabilirsiniz.
 
Yeni başlayanlar için Python ile yapılan basit uygulamaları yayınlamaya karar verdim umarım beğenirsiniz.

Oluşturulan şifrenin güvenliğini görmek için bu siteyi kullanabilirsiniz ==> Kaspersky: Secure Password Check

Not: Rastegele seçim sırasını bilerek böyle yaptım.

[CODE lang="python" title="Python Password Generator"]
import random

letters = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","y","z"]
letters_uppercase = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","y","z"]
numbers = ["1","2","3","4","5","6","7","8","9","0"]
custom = ["(","=","?","@","!","-",")"]

for i in range(len(letters_uppercase)):
letters_uppercase = letters_uppercase.upper()

random = random.choice(letters) + random.choice(letters_uppercase)+random.choice(letters_uppercase)+ random.choice(numbers)+random.choice(letters_uppercase)+random.choice(letters_uppercase)+random.choice(letters)+random.choice(letters)+ random.choice(numbers)+random.choice(custom)+random.choice(letters_uppercase)+ random.choice(numbers)+random.choice(letters)+random.choice(numbers)+random.choice(numbers)+random.choice(letters_uppercase)
print("You can use this password: "+random)[/CODE]

Hocam string kütüphanesinin ascii_lowercase özelliğini kullanabilirsiniz daha temiz bir görünüme kavuşuyor, dün buna benzer klasör içine rastgele dosya oluşturan bir program yapmıştım:
Python:
import os
import shutil
import random as r
import string
filesdirname = "NeMutluTürkümDiyene"
dirname = []
try:
    os.mkdir(filesdirname)
    os.chdir(filesdirname)
except FileExistsError:
    shutil.rmtree(filesdirname)
    os.mkdir(filesdirname)
    os.chdir(filesdirname)
for _ in range(1000):
    for _ in range(5):
        dirname.append(r.choice(string.ascii_lowercase))
    f=open("".join(dirname) + str(r.randint(1,500)),"w")
    f.write("n g neer was here!")
    f.close()
    dirname = []
Klasör oluşturma özelliğini kapatıp tüm klasörlere bulaşacak şekilde yaparsak daha zararlı olabilir ama amacımız zarar vermek değil. 😇
 

Geri
Yukarı