Kreiranje jake slučajne lozinke u Excelu
|
Ovaj tutorijal prikazuje način na koji u
Excelu možete kreirati jaku lozinku (password).
Ako želite kreirati kvalitetan password ili
lozinku za prijavu na neki web ili bilo gdje gdje treba
upisati kvalitetnu lozinku tada možete iskoristiti Excel i
funkcije koje sadrži.
U daljnjem tekstu prikazat ću formule pomoću
kojih možete kreirati jaku password (lozinku). Na kraju
tutorijala možete skinuti datoteku iz primjera koja sadrži
sve funkcije za kreiranje password (lozinke) |
 |
|
Na slici uočite ćelije koje sadrže Random
(slučajan) broj ćelije koje su obojane žutom bojom su
polazna točka za kreiranje slučajne lozinke.
Kombinacijom formula možete postići slučajnu
lozinku u više varijanti sa brojem znakova po želji kao i
vrstom znakova koji dolaze u obzir.
Osvježavanje (Refresh) nove lozinke vršite
pritiskom na tipku F9
Formula u stupcu A1:A10 je
=INT(RAND()*35)
Formula u stupcu A14:A25 je
=RANDBETWEEN(7;9)
|
 |
Formula u stupcu C1:C10 je =IF(A1<10;A1;CHAR(A1-3+65))
Formula u stupcu D1:D10 je =INT(RAND()*9)
Formula u stupcu E1:E10 je =RL(1;1;2)
Formula u stupcu F1:F10 je =INT(RAND()*36)
Formula u stupcu G1:G10 je =RL(1;1;2)
Formula u stupcu H1:H10 je =IF(A1<10;A1;IF(A1<36;CHAR(A1-10+65);CHAR(A1-36+97)))
Formula u stupcu I1:I10 je
=IF(A1<10;A1;IF(A1<36;CHAR(A1-7+65);CHAR(A1-36+97)))
Formula u stupcu L1:L10 je =C1&D1&E1&F1&G1&H1&I1
Formula u stupcu L13 je =RndPassP(A13)
Formula u stupcu L14 je =RndPass(8;A14)
Formula u stupcu L14 je =pass(A15)
Macro
code iz primjera
Public Function RndPassP(Phrase
As String) As String
'add this code to a vb module
'syntax is ‘RndPassP(string):
'RndPassP ("I work in Property Finance")
Dim Max As Integer
Dim Min As Integer
Dim RndPassLoop As String
If Len(Phrase) < 12 Then
RndPassP = "Phrase too short - please choose something
longer"
Exit Function
End If
If subStringCount(Phrase, "a") + _
subStringCount(Phrase, "c") + _
subStringCount(Phrase, "e") + _
subStringCount(Phrase, "i") + _
subStringCount(Phrase, "o") + _
subStringCount(Phrase, "s") + _
subStringCount(Phrase, "u") + _
subStringCount(Phrase, "r") < 4 Then
RndPassP = "Phrase does not include enough key letters -
please choose another"
Exit Function
End If
Phrase = StrConv(Phrase, vbLowerCase)
Randomize Timer
RndPassLoop = Replace(Phrase, "a", "@")
Phrase = Replace(RndPassLoop, "b", "8")
RndPassLoop = Replace(Phrase, "e", "3")
Phrase = Replace(RndPassLoop, "i", "!")
RndPassLoop = Replace(Phrase, "o", "0")
Phrase = Replace(RndPassLoop, "s", "$")
RndPassLoop = Replace(Phrase, " ", "")
Phrase = Replace(RndPassLoop, "u", " * ")
RndPassLoop = Replace(Phrase, "r", "L")
Phrase = Replace(RndPassLoop, "M", "M")
RndPassLoop = Replace(Phrase, "N", "N")
Phrase = Replace(RndPassLoop, "T", "T")
RndPassLoop = Replace(Phrase, "X", "X")
Phrase = Replace(RndPassLoop, "G", "G")
Phrase = RndPassLoop & ":)"""
RndPassP = Phrase
End Function
Function subStringCount(longString As String, subString As
String) As Double
subStringCount = Len(longString) _
- Len(Application.Substitute(longString, subString,
vbNullChar))
End Function
Public Function RndPass(Length As Integer, Optional Lower As
Boolean) As String
'add this code to a vb module
'syntax is RndPass(Length of password, True (lowercase) /
Empty or False (both upper and lower)
'RndPass(20,1) = 20 characters lower case
Dim Max As Integer
Dim Min As Integer
Dim RndPassLoop As String
Max = 126
Min = 48
Randomize Timer
If Length < 8 Then
Length = 8
End If
For i = 1 To Length
RndPassLoop = RndPassLoop & Chr(Int((Max - Min + 1) * Rnd +
Min))
Next i
If Lower = False Then
RndPass = RndPassLoop
Else
RndPass = StrConv(RndPassLoop, vbLowerCase)
End If
End Function
Function pass(Length As Integer)
Dim p As String
Dim c As String
p = ""
For i = 1 To Length
x = Int(Rnd() * 4)
If x = 1 Then c = Chr(Int(Rnd() * (57 - 48) + 48))
If x = 2 Then c = Chr(Int(Rnd() * (90 - 65) + 65))
If x = 3 Then c = Chr(Int(Rnd() * (120 - 97) + 97))
p = p & c
Next i
pass = p
End Function
Public Function RL(Cnt1 As Integer, Cnt2 As Integer, MySet
As Integer)
Dim Rand As String
Dim i As Integer, RndNo As Integer, XSet As Integer
Dim MyCase As Integer
Application.Volatile
Select Case MySet
Case Is = "1" 'Upper case
MyCase = 65: XSet = 26
Case Is = "2" 'Lower Case
MyCase = 97: XSet = 26
Case Is = "3" 'Leading Capital
MyCase = 97: XSet = 26
Case Is = "4" 'Text digits
MyCase = 48: XSet = 10
Case Is = "5" 'Numeric digits
MyCase = 48: XSet = 10
End Select
If MySet = 3 Then 'Set leading character of "Name"
i = i + 1
Randomize
Rand = Rand & Chr(Int((26) * Rnd + 65))
End If
'Set random length of string
RndNo = Int((Cnt2 + 1 - Cnt1) * Rnd + Cnt1)
Do
i = i + 1
Randomize
Rand = Rand & Chr(Int((XSet) * Rnd + MyCase))
Loop Until i = RndNo
RL = Rand
'Convert string to number
If MySet = 5 Then RL = RL * 1
End Function
DOWNLOAD
datoteke iz primjera |