C++ random password generator nasıl yapılır?

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Uzman Üye
Katılım
19 Tem 2020
Mesajlar
195
Çözümler
2
Tepki puanı
40
Ödüller
6
Yaş
29
5 HİZMET YILI
Arkadaşlar merhaba, random password generator yaptım. Yazılımda yeniyim, şimdi bu yaptığım password generatoru çalıştırdığımda bana oluşturduğu şifreyi log olarak kaydetmesini ve bir daha program ne kadar çalıştırılırsa çalıştırılsın, o ayni şifrenin denk gelme ihtimali %0.0000000001 bile olsa o şifreyi bir daha yazdırmasın istiyorum. Nasıl bir yol izlemeliyim?

Kod:
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

const char alphanum[]="0123456789_@€æ>£#$½abcdefghijklmnoprstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ";
int string_length = sizeof(alphanum);

int main(){
    int lenght;

    cout<<"Enter leght of password : ";
    cin>>lenght;
    srand(time(0));
    cout<<"Generated Password :";
    for (int i = 0; i < lenght; i++)
    {
        cout<<alphanum[rand()%string_length];
    }
    system("pause");
  return 0;
}
 
Moderatörün son düzenlenenleri:
Uzman Üye
Katılım
16 May 2018
Mesajlar
210
Çözümler
1
Tepki puanı
32
Ödüller
10
Yaş
30
8 HİZMET YILI
öyle bir ihtimal yok girdiğin passwordun sadece uzunluğu biliniyor tek kullanımlık log yapıcaksan ve bunuda text gibi yere kaydedip bidaha açtığında aynı değerin gelme ihtimali milyarda 1, velevki geldi diyelim tek kullanımlık oluşturmak yerine misal 10 tane oluştursun hepsi aynı uzunlukta farklı olsun diyosan değerleri arrayda tutup karşılaştırcan sadece
 
Uzman Üye
Katılım
19 Tem 2020
Mesajlar
195
Çözümler
2
Tepki puanı
40
Ödüller
6
Yaş
29
5 HİZMET YILI
öyle bir ihtimal yok girdiğin passwordun sadece uzunluğu biliniyor tek kullanımlık log yapıcaksan ve bunuda text gibi yere kaydedip bidaha açtığında aynı değerin gelme ihtimali milyarda 1, velevki geldi diyelim tek kullanımlık oluşturmak yerine misal 10 tane oluştursun hepsi aynı uzunlukta farklı olsun diyosan değerleri arrayda tutup karşılaştırcan sadece
peki son sifreyi text dosyasina nasil yazdirabilirim otomatik bir sekilde
 
Uzman Üye
Katılım
16 May 2018
Mesajlar
210
Çözümler
1
Tepki puanı
32
Ödüller
10
Yaş
30
8 HİZMET YILI
C++:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <stdio.h>

#pragma warning(disable : 4996)

std::string randomGen(int len)
{
    char c1[] =
        "0123456789"
        "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        "abcdefghijklmnopqrstuvwxyz";

    std::string temp;
    temp.reserve(len);

    for (int i = 0; i < len; ++i)
    {
        temp += c1[rand() % (sizeof(c1) - 1)];
    }

    return temp;
}

int main()
{
    srand(time(0));
    
    FILE* dosya = fopen("log.txt", "w");

    auto test = randomGen(5);
    std::cout << test << std::endl;
    fprintf(dosya, test.c_str());

    fclose(dosya);

    system("pause");
    return 0;
}
şöle örnek atim istediğin gibi geliştireblirsn
 
Onaylı Üye
Katılım
7 Ağu 2017
Mesajlar
97
Tepki puanı
3
Ödüller
5
Yaş
28
8 HİZMET YILI
sosyal medya hesaplarının şifreleri için işe yarar mı
 
Seçkin Üye
Katılım
7 May 2020
Mesajlar
397
Çözümler
10
Tepki puanı
48
Ödüller
5
Yaş
26
6 HİZMET YILI
Buyur dostum aşağıdaki kod işini görecektir.

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
#include <set>

using namespace std;

const char alphanum[] = "0123456789_@€æ>£#$½abcdefghijklmnoprstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ";
int string_length = sizeof(alphanum) - 1;
set<string> generated_passwords;

int main() {
int length;
string password;

cout << "Enter length of password: ";
cin >> length;

srand(time(0));
while (true) {
password = "";
for (int i = 0; i < length; i++) {
password += alphanum[rand() % string_length];
}
if (generated_passwords.count(password) == 0) {
break;
}
}

cout << "Generated Password: " << password << endl;
generated_passwords.insert(password);

return 0;
}
 
Uzman Üye
Katılım
13 Ara 2018
Mesajlar
192
Çözümler
1
Tepki puanı
22
Ödüller
8
Yaş
31
7 HİZMET YILI
C++:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
    srand(time(NULL)); // rastgele sayılar için tohum oluştur

    // Şifre uzunluğunu belirle
    int length;
    cout << "Sifrenin uzunlugunu belirleyin: ";
    cin >> length;

    // Karakter seti
    const char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+";

    // Şifre oluştur
    char password[length];
    for (int i = 0; i < length; i++) {
        password[i] = charset[rand() % (sizeof(charset) - 1)];
    }
    password[length] = '\0'; // son karakter null olsun

    // Şifreyi yazdır
    cout << "Olusturulan sifre: " << password << endl;

    return 0;
}

Bu kod, kullanıcıdan şifrenin uzunluğunu alır, ardından rastgele karakterlerden oluşan bir şifre oluşturur ve ekrana yazdırır. Karakter seti olarak küçük harfler, büyük harfler, sayılar ve bazı özel karakterler kullanılmıştır. Karakter setini istediğiniz gibi değiştirebilirsiniz.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst