meine Kenntnisse in Python sind nicht so gut, weshalb ich hier um Hilfe bitte.
Ursprünglicher Quelltext:
Code: Alles auswählen
def createInitialPwd(col,key,config):
flag = config.get(ldapConst.PWD_FLAG,0)
if flag:
param=config[ldapConst.FCTS]
length=utilGeneral.isInt(param.get(ldapConst.PWDLENGTH,8))
char_sets=[string.lowercase, string.uppercase, string.digits, string.punctuation]
chars_up_lo=string.lowercase+string.uppercase+string.digits
length -= 1
chars=[]
for s in char_sets:
chars.append(random.choice(s))
while len(chars) < length:
chars.append(random.choice(''.join(char_sets)))
random.shuffle(chars)
s=''.join(chars)
y=random.choice(chars_up_lo)
config[ldapConst.PWD_TMP]=y + s
return y + s
return ''
Dazu hatte ich jetzt die folgende Idee:
1. Erzeuge ein 8-stelliges Kennwort in Kleinbuchstaben (funktioniert)
2. Ersetze 1-2 Zeichen mit Zahlen (funktioniert)
3. Ersetze 1-2 Zeichen mit Großbuchstaben (funktioniert)
4. Ersetze 1-2 Zeichen mit Sonderzeichen (funktioniert nicht - wie kann ich das umsetzen bzw. was ist falsch)
5. Durchmischen der Ziffern (funktioniert)
Quellcode dazu:
Code: Alles auswählen
def createInitialPwd(col,key,config):
flag = config.get(ldapConst.PWD_FLAG,0)
if flag:
param=config[ldapConst.FCTS]
length=utilGeneral.isInt(param.get(ldapConst.PWDLENGTH,8))
char_sets=string.lowercase
char_sets_zeichen=string.punctuation
chars_up_lo=string.lowercase+string.uppercase+string.digits
length -= 1
chars=""
for i in range(length):
next_index=random.randrange(len(char_sets))
chars = chars + char_sets[next_index]
# replace 1 or 2 characters with a number - works
for i in range(random.randrange(1,3)):
replace_index = random.randrange(len(chars)//2)
chars = chars[0:replace_index] + str(random.randrange(10)) + chars[replace_index+1:]
# replace 1 or 2 letters with an uppercase letter - works
for i in range(random.randrange(1,3)):
replace_index = random.randrange(len(chars)//2,len(chars))
chars = chars[0:replace_index] + chars[replace_index].upper() + chars[replace_index+1:]
# Ersetzen der Sonderzeichen funktioniert nicht!!
random.shuffle(chars)
s=''.join(chars)
y=random.choice(chars_up_lo)
config[ldapConst.PWD_TMP]=y + s
return y + s
return ''
Gruss M.