Yazılım | Programlama Python password generator kodu?

illerin beyi

Katılımcı Üye
2 Mar 2021
971
92
Bu kod çalıştırıldığında şifrenin kaç karakter olmasını sorması gerekiyor. Kullanacağı karakterler kodun içinde string ile değil de özel olarak yazılabilmeli ve her karakter yazılabilmeli " vb. dahil. Kodun içinde belirlenmiş bazı karakterleri kesinlikle kullanmalı ve bu belirli karakterlerin her birinden kaç tane kullanacağı kodun içinde belirlenebilmeli.
Böyle bir kod var mı? Yardımcı olur musunuz?
İyi forumlar.
 

illerin beyi

Katılımcı Üye
2 Mar 2021
971
92
Böyle bir kod siz yazarsanız var. Önce siz yazdığınız kodu atar mısınız.
Python:
import random
import string


character_1 = list("1")
character_2 = list("2")
character_3 = list("3")
character_4 = list("4")
character_5 = list("5")
all_characters = list("!@#$%^&*().,[]{}\?/-|_+£><")
characters = list("1" + "2" + "3" + "4" + "5" + "!@#$%^&*()")


def generate_random_password():
    length = int(input("Enter password length: "))
    character_1_count = int(input("Enter character_1 count in password: "))
    character_2_count = int(input("Enter character_2 count in password: "))
    character_3_count = int(input("Enter character_3 count in password: "))
    character_4_count = int(input("Enter character_4 count in password: "))
    character_5_count = int(input("Enter character_5 count in password: "))
    all_characters_count = int(input("Enter characters count in password: "))
    characters_count = character_1_count + character_2_count + character_3_count + character_4_count + character_5_count + all_characters_count


    if characters_count > length:
        print("characters total count is greater than the password length")
        return
    password = []
  
    for i in range(character_1_count):
        password.append(random.choice(character_1))

    for i in range(character_2_count):
        password.append(random.choice(character_2))

    for i in range(character_3_count):
        password.append(random.choice(character_3))

    for i in range(character_4_count):
        password.append(random.choice(character_4))

    for i in range(character_5_count):
        password.append(random.choice(character_5))

    for i in range(all_characters_count):
        password.append(random.choice(all_characters))

    if characters_count < length:
        random.shuffle(characters)
        for i in range(length - characters_count):
            password.append(random.choice(characters))


    random.shuffle(password)

    print("".join(password))

generate_random_password()
En fazla bu kadarını yapabildim ama anlattığım gibi tam istediğim özelliklerde değil.
 

illerin beyi

Katılımcı Üye
2 Mar 2021
971
92
Belirlediğimiz karakterler hangileri. Mesela hangi karakteri kesinlikle kullanması gerekiyor.
5 karakter var hepsi zero width. Eklemeyi unutmuşum birde bu kesinlikle kullanması gereken 5 karakter harici herhangi bir karakteri birden fazla kullanmaması gerekiyor ve şifrenin uzunluğunun da belirli bir aralıkta random olması gerekiyor mesela 100 karakter ile 150 karakter arası random uzunlukta.
 

Helmsys

Ar-Ge Ekibi Kıdemli
16 Mar 2022
1,492
1,652
Zero width dediğiniz şey sıfır uzunluğa sahip ama bir karakteri temsil eden '\u200b' (tanımı nedir bilmiyorum ama ) böyle bir yapı.
Bunun kodunuzda olup olmaması hiçbir şeyi değiştirmez.

Peki bu bir ödev mi ?
(Dürüst olun)
 

illerin beyi

Katılımcı Üye
2 Mar 2021
971
92
Peki bu bir ödev mi ?
Hayır, benim için çok gerekli ve önemli olan bir araç. Günlerdir bunu arıyorum.
Zero width dediğiniz şey sıfır uzunluğa sahip ama bir karakteri temsil eden '\u200b' (tanımı nedir bilmiyorum ama ) böyle bir yapı.
Bunun kodunuzda olup olmaması hiçbir şeyi değiştirmez.
Ama onu da kullanması gerekiyor.

Zero width dediğiniz şey sıfır uzunluğa sahip ama bir karakteri temsil eden '\u200b' (tanımı nedir bilmiyorum ama ) böyle bir yapı.
Bunun kodunuzda olup olmaması hiçbir şeyi değiştirmez.

Peki bu bir ödev mi ?
(Dürüst olun)
Yardım eder misiniz?
Hayır, benim için çok gerekli ve önemli olan bir araç. Günlerdir bunu arıyorum.

Ama onu da kullanması gerekiyor.
 

Helmsys

Ar-Ge Ekibi Kıdemli
16 Mar 2022
1,492
1,652
O karakteri ve belirlediğiniz diğer özellikleri siz koyarsınız.
.
.
.


Python:
import string
import random
import sys

şifre_uzunluğu = int(input("Kaç karakterli: "))
belirlenen_karakterler = input("Kullanılacak karakterler: ").split(chr(32))
özel_karakter_sorgusu = (False if not i in list(string.punctuation) else i for i in belirlenen_karakterler)
depo = ""
tamamı = []
for j in özel_karakter_sorgusu:
    if not j:
        print("Geçersiz  özel karakter içeriyor")
        sys.exit(0)
    else:
        depo += j

harfler, depodakiler = (string.ascii_lowercase,depo)

şifre = random.choices(harfler+depodakiler,k=şifre_uzunluğu)
doğrumu = True
while doğrumu:
    for şifre_karakteri in şifre:
        if not şifre_karakteri in belirlenen_karakterler:
            şifre = random.choices(harfler+depodakiler,k=şifre_uzunluğu)
        if şifre_karakteri in şifre:
            #print(f"Şifre Karakteri: {şifre.count(şifre_karakteri)} {şifre}")
            if şifre.count(şifre_karakteri) > 1:
                şifre[şifre.index(şifre_karakteri)] = random.choice(string.ascii_uppercase)
            doğrumu = False
            break

print(şifre)
 

illerin beyi

Katılımcı Üye
2 Mar 2021
971
92
O karakteri ve belirlediğiniz diğer özellikleri siz koyarsınız.
.
.
.


Python:
import string
import random
import sys

şifre_uzunluğu = int(input("Kaç karakterli: "))
belirlenen_karakterler = input("Kullanılacak karakterler: ").split(chr(32))
özel_karakter_sorgusu = (False if not i in list(string.punctuation) else i for i in belirlenen_karakterler)
depo = ""
tamamı = []
for j in özel_karakter_sorgusu:
    if not j:
        print("Geçersiz  özel karakter içeriyor")
        sys.exit(0)
    else:
        depo += j

harfler, depodakiler = (string.ascii_lowercase,depo)

şifre = random.choices(harfler+depodakiler,k=şifre_uzunluğu)
doğrumu = True
while doğrumu:
    for şifre_karakteri in şifre:
        if not şifre_karakteri in belirlenen_karakterler:
            şifre = random.choices(harfler+depodakiler,k=şifre_uzunluğu)
        if şifre_karakteri in şifre:
            #print(f"Şifre Karakteri: {şifre.count(şifre_karakteri)} {şifre}")
            if şifre.count(şifre_karakteri) > 1:
                şifre[şifre.index(şifre_karakteri)] = random.choice(string.ascii_uppercase)
            doğrumu = False
            break

print(şifre)
Pek anlamadım, rica etsem siz koyar mısınız?
 

SecurityFaTHeR

Uzman üye
4 Şub 2022
1,313
357
O karakteri ve belirlediğiniz diğer özellikleri siz koyarsınız.
.
.
.


Python:
import string
import random
import sys

şifre_uzunluğu = int(input("Kaç karakterli: "))
belirlenen_karakterler = input("Kullanılacak karakterler: ").split(chr(32))
özel_karakter_sorgusu = (False if not i in list(string.punctuation) else i for i in belirlenen_karakterler)
depo = ""
tamamı = []
for j in özel_karakter_sorgusu:
    if not j:
        print("Geçersiz  özel karakter içeriyor")
        sys.exit(0)
    else:
        depo += j

harfler, depodakiler = (string.ascii_lowercase,depo)

şifre = random.choices(harfler+depodakiler,k=şifre_uzunluğu)
doğrumu = True
while doğrumu:
    for şifre_karakteri in şifre:
        if not şifre_karakteri in belirlenen_karakterler:
            şifre = random.choices(harfler+depodakiler,k=şifre_uzunluğu)
        if şifre_karakteri in şifre:
            #print(f"Şifre Karakteri: {şifre.count(şifre_karakteri)} {şifre}")
            if şifre.count(şifre_karakteri) > 1:
                şifre[şifre.index(şifre_karakteri)] = random.choice(string.ascii_uppercase)
            doğrumu = False
            break

print(şifre)
Yaptığın programbir tür cryptografimi
 

Helmsys

Ar-Ge Ekibi Kıdemli
16 Mar 2022
1,492
1,652
Peki kodu açıklayabilir misiniz? anlayamadım python bilgim çok az.
Bu kod kullanıcıdan iki adet girdi alıyor.
Biri karakter sayısı diğeri de oluşturulacak parolada olmasını istediği karakterlerden herhangi biri.

Bunlara uygun olarak oluşturulan şifrede eğer aynı özel karakter içeriyorsa aynı olan karakteri rastgele büyük harf ile değiştiriyor.
Ardından ekrana yazdırıyor.
 
Son düzenleme:

illerin beyi

Katılımcı Üye
2 Mar 2021
971
92
Bu kod kullanıcıdan iki adet girdi alıyor.
Biri karakter sayısı diğeri de oluşturulacak parolada olmasını istediği karakterlerden herhangi biri.

Bunlara uygun olarak oluşturulan şifrede eğer aynı özel karakter içeriyorsa aynı olan karakteri rastgele büyük harf ile değiştiriyor.
Ardından ekrana yazdırıyor.
Neden parolada olmasını istediği karakterlerden herhangi biri? Yani kullanmasını istediğim (zero width dahil) tüm karakterleri mi girmem gerekiyor?
 

Helmsys

Ar-Ge Ekibi Kıdemli
16 Mar 2022
1,492
1,652
Yani kullanmasını istediğim (zero width dahil) tüm karakterleri mi girmem gerekiyor?
o karakterler "string.punctuation" içerisinde bulunmuyor. Ayrıyeten belirtip ekleyebilirsiniz.

Neden parolada olmasını istediği karakterlerden herhangi biri?
Çünkü siz öyle istediniz:
Kodun içinde belirlenmiş bazı karakterleri kesinlikle kullanmalı
 

illerin beyi

Katılımcı Üye
2 Mar 2021
971
92
o karakterler "string.punctuation" içerisinde bulunmuyor. Ayrıyeten belirtip ekleyebilirsiniz.


Çünkü siz öyle istediniz:
Hocam ama sorgulu bu. Ben kodun içerisinde belirtilmiş 5 tane zero width karakterini kesinlikle kullanması gerektiğini demek istemiştim:
5 karakter var hepsi zero width. Eklemeyi unutmuşum birde bu kesinlikle kullanması gereken 5 karakter harici herhangi bir karakteri birden fazla kullanmaması gerekiyor ve şifrenin uzunluğunun da belirli bir aralıkta random olması gerekiyor mesela 100 karakter ile 150 karakter arası random uzunlukta.

Hocam ama sorgulu bu. Ben kodun içerisinde belirtilmiş 5 tane zero width karakterini kesinlikle kullanması gerektiğini demek istemiştim:
ve
Bu kod çalıştırıldığında şifrenin kaç karakter olmasını sorması gerekiyor. Kullanacağı karakterler kodun içinde string ile değil de özel olarak yazılabilmeli ve her karakter yazılabilmeli " vb. dahil. Kodun içinde belirlenmiş bazı karakterleri kesinlikle kullanmalı ve bu belirli karakterlerin her birinden kaç tane kullanacağı kodun içinde belirlenebilmeli.
Böyle bir kod var mı? Yardımcı olur musunuz?
İyi forumlar.

Hocam ama sorgulu bu. Ben kodun içerisinde belirtilmiş 5 tane zero width karakterini kesinlikle kullanması gerektiğini demek istemiştim:
Yardım eder misiniz?
 

Helmsys

Ar-Ge Ekibi Kıdemli
16 Mar 2022
1,492
1,652
bu karakterleri tanımlayın. Ardından sorgunun içerisine bu tanımladıklarınızı ekleyin. eğer kullanıcı bu karakterleri kullanmadan işlem yapıyorsa uyarı verin ve kullanmasını zorunlu kılın.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.