SimpsoN_Bart Posted March 9, 2013 Share Posted March 9, 2013 Şifre üret adlı projemden esinlenerek geliştirdiğim güzel bir fonksiyon.Randomun boyutunu ve karakter aralığını arttırarak dileğiniz gibi geliştirebilirsiniz.. Arşivimi düzenlerken buldum belki lazım olur diye paylaşmak istedim umarım yararlı olur. For $i = 4 To 20 ConsoleWrite($i - 3 & '. ' & _Random_Password($i) & ' (Seviye: ' & $i & ')' & @CR) Next Func _Random_Password($nBoyut = 16) Local $s_Password, $nKarakter If $nBoyut < 4 Or $nBoyut > 20 Then $nBoyut = 10 For $i = 1 To $nBoyut Switch Random(1, 3, 1) Case 1 $nKarakter = Chr(Random(48, 57));Sayısal [0-9] Case 2 $nKarakter = Chr(Random(65, 90));Büyük-küçük karakrer [A-Z] Case 3 $nKarakter = Chr(Random(97, 122));Küçük karakter [a-z] EndSwitch $s_Password &= $nKarakter Next Return $s_Password EndFunc ;==>_Random_Password Quote Link to comment Share on other sites More sharing options...
asmazh Posted March 10, 2013 Share Posted March 10, 2013 Ben de bir zamanlar şöyle bir şeyler karalamıştım. Global Const $CH_LIST[31] = ["!", '"', "#", "$", "%", "&", "'", "(", ")", "*", "+", "-", ".", "/", "\", ":", ";", "<", ">", "=", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~"] Func Rndm_PasswordCreate($MAX, $NM = -1, $ST = -1, $CH = -1, $L_U = -1) If (($NM + $ST + $CH) > $MAX) Then Return SetError(1, 0, 0) If ($L_U <> -1 And $L_U <> 0 And $L_U <> 1) Then Return SetError(1, 0, 0) Local $RP, $i = 0 If $NM = -1 And $ST = -1 And $CH = -1 Then Do $RP &= Random(0, 9, 1) $i += 1 Until $i = $MAX Else Local $S_N = 0, $N_N = 0, $C_N = 0, $CHR_R, $ST_NM Do $ST_NM = Random(0, 2, 1) If $ST_NM = 0 Then If $S_N < $ST Then $RP &= Iif($L_U = -1, $L_U = 0, Chr(Random(65, 90, 1)), Chr(Random(97, 122, 1))) $S_N += 1 ElseIf $N_N < $NM Then $RP &= Random(0, 9, 1) $N_N += 1 ElseIf $C_N < $CH Then $RP &= $CH_LIST[Random(0, UBound($CH_LIST) - 1, 1)] $C_N += 1 EndIf ElseIf $ST_NM = 1 Then If $N_N < $NM Then $RP &= Random(0, 9, 1) $N_N += 1 ElseIf $S_N < $ST Then $RP &= Iif($L_U = -1, $L_U = 0, Chr(Random(65, 90, 1)), Chr(Random(97, 122, 1))) $S_N += 1 ElseIf $C_N < $CH Then $RP &= $CH_LIST[Random(0, UBound($CH_LIST) - 1, 1)] $C_N += 1 EndIf Else If $C_N < $CH Then $RP &= $CH_LIST[Random(0, UBound($CH_LIST) - 1, 1)] $C_N += 1 ElseIf $N_N < $NM Then $RP &= Random(0, 9, 1) $N_N += 1 ElseIf $S_N < $ST Then $RP &= Iif($L_U = -1, $L_U = 0, Chr(Random(65, 90, 1)), Chr(Random(97, 122, 1))) $S_N += 1 EndIf EndIf $i += 1 Until $i = $MAX EndIf Return $RP EndFunc ;==>Rndm_PasswordCreate Func Iif($if, $if2, $1true, $2true) If $if Then Return $1true ElseIf $if2 Then Return $2true Else Local $R = Random(0, 1, 1) If $R = 1 Then Return Chr(Random(97, 122, 1)) Return Chr(Random(65, 90, 1)) EndIf EndFunc ;==>Iif ConsoleWrite("Örnek 1" & @CRLF & "---------------------------------------------------------------------------" & @CRLF) For $I = 6 To 20 Step 2 ConsoleWrite($I & " = " & Rndm_PasswordCreate($I, $I / 2, $I / 2) & @CRLF) Next ConsoleWrite("Örnek 2" & @CRLF & "---------------------------------------------------------------------------" & @CRLF) For $I = 6 To 20 ConsoleWrite($I & " = " & Rndm_PasswordCreate($I) & @CRLF) Next ConsoleWrite("Örnek 3" & @CRLF & "---------------------------------------------------------------------------" & @CRLF) For $I = 6 To 20 ConsoleWrite($I & " = " & Rndm_PasswordCreate($I, 0, $I) & @CRLF) Next ConsoleWrite("Örnek 4" & @CRLF & "---------------------------------------------------------------------------" & @CRLF) For $I = 6 To 20 ConsoleWrite($I & " = " & Rndm_PasswordCreate($I, 0, $I, 0, 0) & @CRLF) Next ConsoleWrite("Örnek 5" & @CRLF & "---------------------------------------------------------------------------" & @CRLF) For $I = 6 To 20 ConsoleWrite($I & " = " & Rndm_PasswordCreate($I, 0, $I, 0, 0) & @CRLF) Next ConsoleWrite("Örnek 6" & @CRLF & "---------------------------------------------------------------------------" & @CRLF) For $I = 6 To 20 Step 2 ConsoleWrite($I & " = " & Rndm_PasswordCreate($I, $I / 2, $I / 2, 0, 0) & @CRLF) Next ConsoleWrite("Örnek 7" & @CRLF & "---------------------------------------------------------------------------" & @CRLF) For $I = 6 To 20 Step 2 ConsoleWrite($I & " = " & Rndm_PasswordCreate($I, $I / 2, $I / 2, 0, 1) & @CRLF) Next ConsoleWrite("Örnek 8" & @CRLF & "---------------------------------------------------------------------------" & @CRLF) For $I = 6 To 20 Step 2 ConsoleWrite($I & " = " & Rndm_PasswordCreate($I, 1, 2, $I - 3) & @CRLF) Next ConsoleWrite("Örnek 9" & @CRLF & "---------------------------------------------------------------------------" & @CRLF) $I = 0 Do $I += 1 ConsoleWrite($I & " = " & Rndm_PasswordCreate(6, 3, 2, 1, 1) & @CRLF) Until $I = 20 Quote Link to comment Share on other sites More sharing options...
spyking_21 Posted March 10, 2013 Share Posted March 10, 2013 1.-10 arası random sayı üretecem ama bu sayılar arasında mesela 4 ün gelme olasılığını %50 yapmak istiyorum gibi yapılabilirmi Quote Link to comment Share on other sites More sharing options...
asmazh Posted March 10, 2013 Share Posted March 10, 2013 1.-10 arası random sayı üretecem ama bu sayılar arasında mesela 4 ün gelme olasılığını %50 yapmak istiyorum gibi yapılabilirmi Yapılabilir. % olayını da Random'a bağlayarak yapabilirsin. Saygılar. Quote Link to comment Share on other sites More sharing options...
blackman12 Posted March 11, 2013 Share Posted March 11, 2013 aylardır autoit kodu yazmadım array syntaxi bile yanlış olabilir func _yuzdeelli() local $x = random(0,1,1), $y, $array = [0,1,2,3,4,5,6,7,8,9] if $x = 0 then $y = 4 else $y = $array[random(0,10,1)] endif return $y endfunc Quote Link to comment Share on other sites More sharing options...
asmazh Posted March 11, 2013 Share Posted March 11, 2013 (edited) Abi sen nerelerdesin... Aylardır yazmadığın belli :) Func _yuzdeelli() Local $x = Random(0, 1, 1), $y, $array[10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] If $x = 0 Then $y = 4 Else $y = $array[Random(0, 10, 1)] EndIf Return $y EndFunc ;==>_yuzdeelli Edited March 11, 2013 by asmazh Quote Link to comment Share on other sites More sharing options...
blackman12 Posted March 12, 2013 Share Posted March 12, 2013 [quote] array syntaxi bile yanlış olabilir[/quote] mağaramdan yeni çıktım ama en azından nerede hata yaptığımı biliyomuşum gönderirken :D Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.