Jump to content

_Random_Password


SimpsoN_Bart
 Share

Recommended Posts

Ş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

 

 

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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 by asmazh
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...