• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

  • Forum yazılımı güncelenmiştir.

    Beklenmedik durumlar görürseniz lütfen yönetime iletin.

Soru Excel'de rastgele şifre oluşturma

Katılım
11 Ocak 2008
Mesajlar
1,395
Excel Vers. ve Dili
Office 365 (Türkçe)
Excel'de büyük harf, küçük harf ve rakamları da içeren rastgele şifre üretebilme yapılabilir mi.
Örnek dosya ektedir.
 

Ekli dosyalar

=DAMGA(RASTGELEARADA(65; 90)) & DAMGA(RASTGELEARADA(97; 122)) & DAMGA(RASTGELEARADA(48; 57)) & DAMGA(RASTGELEARADA(65; 90)) & DAMGA(RASTGELEARADA(97; 122)) & DAMGA(RASTGELEARADA(48; 57)) & DAMGA(RASTGELEARADA(65; 90)) & DAMGA(RASTGELEARADA(97; 122))

Bu formül ile excelin 8 karakter uzunluğunda karmaşık rastgele yeni şifreler üretmesini sağlayabilirsiniz Örneğin:

Va2Mg9Qt
her seferinde yeni bir sonuç üretir. Belli bir kurala göre kompleks şifre üretmek için ise makro yapılabilir.
 
Son düzenleme:
F2'de bulunan karakter sayısını baz alarak H2 hücresine şifre oluşturur.

F2 hücresini iptal etmek isterseniz
sifreUzunluk = Range("F2").Value satırını sifreUzunluk = 8 gibi değiştirin. 8 karakter oluşturur.

İstemediğiniz karakterleri aşağıdaki bölümden çıkarın veya ekleyin.
karakterler = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_"

C++:
Sub RastgeleSifreUret()
    Dim sifreUzunluk As Integer
    sifreUzunluk = Range("F2").Value

    Dim karakterler As String
    karakterler = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_"

    Dim rastgeleSifre As String
    Dim i As Integer
    For i = 1 To sifreUzunluk
        rastgeleSifre = rastgeleSifre & Mid(karakterler, Int((Len(karakterler) * Rnd) + 1), 1)
    Next i

    Range("H2").Value = rastgeleSifre
End Sub
 

Ekli dosyalar

Alternatif olsun.
Excel365 kullanıcısı olduğunuzdan, Excel365 ile çözüm.

Şifrenin karakter adedini (yani uzunluğunu) B2 hücresine yazın.
1 adetten fazla şifre istiyorsanız da kaç adet şifre olacağını B3 hücresine yazın.

Bu B2 ve B3 (1 adetten fazla şifre istenmesi halinde) hücrelerindeki değerler formülde kullanılacak.

İstenilen şifrede Büyük Harf, Küçük Harf ve Rakamlardan en az 1 er adet olacaksa,

Yalnızca 1 adet Şifre isteniyorsa (B3 hücresinin önemi yok, B3 olmayabilir de) Ama B2 hücresine en az 3 olacak şekilde Tamsayı yazılmalı.
Kod:
=LET(SUz;B2;Rkm;"0123456789";BHf;"ABCDEFGHIJKLMNOPQRSTUVWXYZ";KHf;"abcdefghijklmnopqrstuvwxyz";EĞER(SUz<3;"";LET(d;PARÇAAL(Rkm;RASTGELEARADA(1;10);1);e;PARÇAAL(BHf;RASTGELEARADA(1;26);1);f;PARÇAAL(KHf;RASTGELEARADA(1;26);1);g;PARÇAAL(Rkm&BHf&KHf;RASGDİZİ(;SUz-3;1;62;1);1);ARALIKBİRLEŞTİR(SIRALAÖLÇÜT(YATAYYIĞ(d;e;f;g);RASGDİZİ(;SUz))))))

1 den fazla adette şifre isteniyorsa B3 hücresine 1 den büyük Tamsayı yazın ve B2 hücresine en az 3 olacak şekilde Tamsayı yazılmalı.
Kod:
=LET(SUz;B2;Adet;B3;Rkm;"0123456789";BHf;"ABCDEFGHIJKLMNOPQRSTUVWXYZ";KHf;"abcdefghijklmnopqrstuvwxyz";EĞER(SUz<3;"";LET(d;PARÇAAL(Rkm;RASGDİZİ(Adet;1;1;10;1);1);e;PARÇAAL(BHf;RASGDİZİ(Adet;1;1;26;1);1);f;PARÇAAL(KHf;RASGDİZİ(Adet;1;1;26;1);1);g;PARÇAAL(Rkm&BHf&KHf;RASGDİZİ(Adet;SUz-3;1;62;1);1);h;YATAYYIĞ(d;e;f;g);MAP(SIRALI(Adet);LAMBDA(x;ARALIKBİRLEŞTİR(SIRALAÖLÇÜT(İNDİS(h;x);RASGDİZİ(;SUz))))))))

İstenilen şifrede Büyük Harf, Küçük Harf ve Rakamlardan herhangi bir KOŞUL Yoksa, yani, bazen Büyük Harf, bazen Küçük Harf ve bazen de Rakamlardan HİÇ olmayabilecekse

Yalnızca 1 adet Şifre isteniyorsa (B3 hücresinin önemi yok, B3 olmayabilir de) ama B2 ye 0 dan büyük tamsayı yazılmalı.
Kod:
=LET(SUz;B2;Krk;"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";ARALIKBİRLEŞTİR(PARÇAAL(Krk;RASGDİZİ(;SUz;1;62;1);1)))

1 den fazla adette şifre isteniyorsa B3 hücresine 1 den büyük Tamsayı yazın ve B2 hücresine de 0 dan büyük tamsayı yazılmalı.
Kod:
=LET(SUz;B2;Adet;B3;Krk;"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";MAP(SIRALI(Adet);LAMBDA(x;ARALIKBİRLEŞTİR(İNDİS(PARÇAAL(Krk;RASGDİZİ(Adet;SUz;1;62;1);1);x)))))
 
Alternatif olsun.
Excel365 kullanıcısı olduğunuzdan, Excel365 ile çözüm.

Şifrenin karakter adedini (yani uzunluğunu) B2 hücresine yazın.
1 adetten fazla şifre istiyorsanız da kaç adet şifre olacağını B3 hücresine yazın.

Bu B2 ve B3 (1 adetten fazla şifre istenmesi halinde) hücrelerindeki değerler formülde kullanılacak.

İstenilen şifrede Büyük Harf, Küçük Harf ve Rakamlardan en az 1 er adet olacaksa,

Yalnızca 1 adet Şifre isteniyorsa (B3 hücresinin önemi yok, B3 olmayabilir de) Ama B2 hücresine en az 3 olacak şekilde Tamsayı yazılmalı.
Kod:
=LET(SUz;B2;Rkm;"0123456789";BHf;"ABCDEFGHIJKLMNOPQRSTUVWXYZ";KHf;"abcdefghijklmnopqrstuvwxyz";EĞER(SUz<3;"";LET(d;PARÇAAL(Rkm;RASTGELEARADA(1;10);1);e;PARÇAAL(BHf;RASTGELEARADA(1;26);1);f;PARÇAAL(KHf;RASTGELEARADA(1;26);1);g;PARÇAAL(Rkm&BHf&KHf;RASGDİZİ(;SUz-3;1;62;1);1);ARALIKBİRLEŞTİR(SIRALAÖLÇÜT(YATAYYIĞ(d;e;f;g);RASGDİZİ(;SUz))))))

1 den fazla adette şifre isteniyorsa B3 hücresine 1 den büyük Tamsayı yazın ve B2 hücresine en az 3 olacak şekilde Tamsayı yazılmalı.
Kod:
=LET(SUz;B2;Adet;B3;Rkm;"0123456789";BHf;"ABCDEFGHIJKLMNOPQRSTUVWXYZ";KHf;"abcdefghijklmnopqrstuvwxyz";EĞER(SUz<3;"";LET(d;PARÇAAL(Rkm;RASGDİZİ(Adet;1;1;10;1);1);e;PARÇAAL(BHf;RASGDİZİ(Adet;1;1;26;1);1);f;PARÇAAL(KHf;RASGDİZİ(Adet;1;1;26;1);1);g;PARÇAAL(Rkm&BHf&KHf;RASGDİZİ(Adet;SUz-3;1;62;1);1);h;YATAYYIĞ(d;e;f;g);MAP(SIRALI(Adet);LAMBDA(x;ARALIKBİRLEŞTİR(SIRALAÖLÇÜT(İNDİS(h;x);RASGDİZİ(;SUz))))))))

İstenilen şifrede Büyük Harf, Küçük Harf ve Rakamlardan herhangi bir KOŞUL Yoksa, yani, bazen Büyük Harf, bazen Küçük Harf ve bazen de Rakamlardan HİÇ olmayabilecekse

Yalnızca 1 adet Şifre isteniyorsa (B3 hücresinin önemi yok, B3 olmayabilir de) ama B2 ye 0 dan büyük tamsayı yazılmalı.
Kod:
=LET(SUz;B2;Krk;"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";ARALIKBİRLEŞTİR(PARÇAAL(Krk;RASGDİZİ(;SUz;1;62;1);1)))

1 den fazla adette şifre isteniyorsa B3 hücresine 1 den büyük Tamsayı yazın ve B2 hücresine de 0 dan büyük tamsayı yazılmalı.
Kod:
=LET(SUz;B2;Adet;B3;Krk;"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";MAP(SIRALI(Adet);LAMBDA(x;ARALIKBİRLEŞTİR(İNDİS(PARÇAAL(Krk;RASGDİZİ(Adet;SUz;1;62;1);1);x)))))

Bu şekilde bir sistem oluşturmak mümkünmü

İstenilen şifrede kullanılacak her şifre oluşumunda rastgele bu siteme göre

qwertyuıop

3 harf küçük

asdfghjkAşa

4 harf büyük

zxcvbnm

4 harf büyük

*/!'^+%&(

2

(=!"<12345

2

67890*-

3



18
 



A

B

C

1

Karakterler

Adet



2

qwertyuıop

3

SM'w3ıCNF8+5*DAr-V

3

ASDFGHJKŞ

4



4

ZXCVBNM

4



5

*/!'^+%&(

2



6

(=!"<12345

2



7

67890*-

3



1 - Adetlerin toplamı kadar karakter Şifreyi oluşturur. Şu durumda 18 karakterden oluşan bir Şifre olacak.
2 - Rastgele olayı için bir koşul belirtilmemiş. Örneğin 2. satırdaki, qwertyuıop karakterlerinden 3 adet alınacak. Bunlar benzersiz mi olacak yoksa qqq gibi 3 ü de aynı değer olabilir mi? Formülde benzersiz olarak değerlendirildi.
3 - 1 adet Şifre üretiliyor.

C2 hücresine
Kod:
=LET(a;A2:A7;b;B2:B7;c;ARALIKBİRLEŞTİR(MAP(a;b;LAMBDA(x;y;LET(p;UZUNLUK(x);ARALIKBİRLEŞTİR(PARÇAAL(x;AL(SIRALAÖLÇÜT(SIRALI(p);RASGDİZİ(p));y);1))))));d;TOPLA(b);ARALIKBİRLEŞTİR(PARÇAAL(c;SIRALAÖLÇÜT(SIRALI(d);RASGDİZİ(d));1)))
 
Kusura bakmayın, sağlık vs.nedenlerden cevap yazamadım. Çok teşekkürler.
 
Çok teşekkürler.
F2'de bulunan karakter sayısını baz alarak H2 hücresine şifre oluşturur.

F2 hücresini iptal etmek isterseniz
sifreUzunluk = Range("F2").Value satırını sifreUzunluk = 8 gibi değiştirin. 8 karakter oluşturur.

İstemediğiniz karakterleri aşağıdaki bölümden çıkarın veya ekleyin.
karakterler = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_"

C++:
Sub RastgeleSifreUret()
    Dim sifreUzunluk As Integer
    sifreUzunluk = Range("F2").Value

    Dim karakterler As String
    karakterler = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_"

    Dim rastgeleSifre As String
    Dim i As Integer
    For i = 1 To sifreUzunluk
        rastgeleSifre = rastgeleSifre & Mid(karakterler, Int((Len(karakterler) * Rnd) + 1), 1)
    Next i

    Range("H2").Value = rastgeleSifre
End Sub
Emeğinize sağlık. Çok teşekkürler.
 
Geri
Üst