İPUCU

Python Artificial Intelligence’da en çok kullanılan dildir ve gerekli dökümanların paylaşım alanlar burada paylaşılmaktadır.

Seçenekler

Python Generate Random Password

osm4nl1evl4d1 - ait Kullanıcı Resmi (Avatar)
Tamamen Forumdan Uzaklaştırıldı
Üyelik tarihi:
03/2017
Nereden:
T Ü R K
Mesajlar:
4.256
Konular:
194
Teşekkür (Etti):
791
Teşekkür (Aldı):
1005
Ticaret:
(0) %
30-12-2017 22:34
#1
Python Generate Random Password
Kod:
import random

LOWERCASE_CHARS = tuple(map(chr, xrange(ord('a'), ord('z')+1)))
UPPERCASE_CHARS = tuple(map(chr, xrange(ord('A'), ord('Z')+1)))
DIGITS = tuple(map(str, range(0, 10)))
SPECIALS = ('!', '@', '#', '$', '%', '^', '&', '*')

SEQUENCE = (LOWERCASE_CHARS,
            UPPERCASE_CHARS,
            DIGITS,
            SPECIALS,
            )

def generate_random_password(total, sequences):
    r = _generate_random_number_for_each_sequence(total, len(sequences))

    password = []
    for (population, k) in zip(sequences, r):
        n = 0
        while n < k:
            position = random.randint(0, len(population)-1)
            password += population[position]
            n += 1
    random.shuffle(password)
    
    while _is_repeating(password):
        random.shuffle(password)
        
    return ''.join(password)

def _generate_random_number_for_each_sequence(total, sequence_number):
    """ Generate random sequence with numbers (greater than 0).
        The number of items equals to 'sequence_number' and
        the total number of items equals to 'total'
    """
    current_total = 0
    r = []
    for n in range(sequence_number-1, 0, -1):
        current = random.randint(1, total - current_total - n)
        current_total += current
        r.append(current)
    r.append(total - sum(r))
    random.shuffle(r)

    return r

def _is_repeating(password):
    """ Check if there is any 2 characters repeating consecutively """
    n = 1
    while n < len(password):
        if password[n] == password[n-1]:
            return True
        n += 1
    return False

if __name__ == '__main__':
    print generate_random_password(random.randint(6, 30), SEQUENCE)
Viction Teşekkür etti.
M4K4R - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2017
Mesajlar:
4.268
Konular:
241
Teşekkür (Etti):
131
Teşekkür (Aldı):
847
Ticaret:
(0) %
30-12-2017 22:54
#2
Eline sağlık.
Viction - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2017
Nereden:
Kanada
Mesajlar:
584
Konular:
35
Teşekkür (Etti):
151
Teşekkür (Aldı):
154
Ticaret:
(0) %
30-12-2017 22:54
#3
Elinize sağlık yararlı konu
---------------------
R.I.P
1999 - 2018
Dèfacer - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2017
Mesajlar:
2.600
Konular:
311
Teşekkür (Etti):
378
Teşekkür (Aldı):
540
Ticaret:
(0) %
30-12-2017 22:56
#4
Ellerinize Sağlık
--------------------- "Zamanı Gelmiş Bir Fikrin Önünde Hiçbir Ordu Duramaz."

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı