Rumah >pembangunan bahagian belakang >C++ >Penasihat Kata Laluan yang Kuat

Penasihat Kata Laluan yang Kuat

PHPz
PHPzke hadapan
2023-09-01 16:53:191309semak imbas

Penasihat Kata Laluan yang Kuat

Setiap 7 Mei, organisasi di seluruh dunia mengingatkan pengguna tentang kepentingan kata laluan yang kukuh. Menurut gergasi teknologi Google;

  • 24% daripada pengguna akhir mereka menggunakan perkataan "kata laluan" atau "Qwerty" sebagai kata laluan akaun mereka.

  • Walaupun, hanya 34% pengguna menukar kata laluan akaun mereka dengan kerap.

Dalam dunia berteknologi maju hari ini, setiap percubaan log masuk adalah kemungkinan serangan penjenayah siber. Tetapi ramai orang hari ini masih menggunakan kata laluan yang lemah pada akaun profesional dan peribadi mereka.

Di sini kita akan membincangkan dan menyemak sama ada kata laluan yang dibuat adalah sangat lemah, lemah, sederhana, kuat atau sangat kuat. Untuk melakukan ini, kami akan menyemak kriteria untuk membuat kata laluan mengikut keperluan algoritma. Dalam artikel hari ini, kita akan belajar cara mencipta cadangan kata laluan yang kuat menggunakan kod C++.

Cara Membuat Kata Laluan yang Kuat - Algoritma

Ini ialah algoritma umum untuk kata laluan yang kukuh. Ia membantu pembangun membangunkan sistem cadangan kata laluan dalam persekitaran C++ dan mencari kriteria khusus untuk kata laluan.

  • Langkah 1 − Mula

  • Langkah 2 - Panjang kata laluan yang ideal hendaklah sekurang-kurangnya lapan aksara.

  • Langkah 3 − Mesti mengandungi sekurang-kurangnya satu aksara angka.

  • Langkah 4 - Perlu ada sekurang-kurangnya satu huruf kecil. [Contoh: a, b, c..., z]

  • Langkah 5 - Perlu ada sekurang-kurangnya satu huruf besar. [Contoh: A, B, C..., Z]

  • Langkah 6 − Ia harus mengandungi sekurang-kurangnya satu watak istimewa. [Contoh: !@#$ %^&*()-+]

  • Langkah 7 - Tamat

Buat Penasihat Kata Laluan yang Teguh - Sintaks

switch (k) {
   case 1:
      if ((count_alphabet == 7) && (count_number == 0 || count_ALPHABET == 0 || count_ALPHABET == 7 || count_s_symbol == 0))
         break;
      key = getKey();
      password = password + alphabet[key];
      count_alphabet++;
      count++;
         break;

   case 2:            
      if ((count_ALPHABET == 7) && (count_number == 0 || count_alphabet == 0 || count_alphabet == 5 || count_s_symbol == 0))
            break;
         key = getKey();
         password = password + ALPHABET[key];
         count_ALPHABET++;
         count++;
            break;
   case 3:
      if ((count_number == 7) && (count_alphabet == 0 || count_alphabet == 1 || count_ALPHABET == 3 || count_ALPHABET == 0 || count_s_symbol == 0))
            break;
         key = getKey();           
         key = key % 10;          
         password = password + number[key];
         count_number++;
         count++;
            break;

   case 4:
      if ((count_s_symbol == 1) && (count_alphabet == 0 || count_alphabet == 1 || count_ALPHABET == 0 || count_ALPHABET == 1 || count_number == 0))
            break;
         key = getKey();
         key = key % 6;
         password = password + s_symbol[key];

         count_s_symbol++;
         count++;
            break;
   }
   cout << "\n-----------------------------\n";
   cout << "        Enter The Password             \n";
   cout << "------------------------------\n\n";
   cout << " " << password add here;
   cout << "\n\n Press any key continue \n";
   getchar();
}

Dalam sintaks ini, syarat menyemak keperluan minimum untuk kata laluan yang ideal. Kami membahagikan setiap keadaan yang mungkin kepada empat kes, menyemak sama ada keperluan untuk aksara abjad, angka dan simbol khas dipenuhi dan sama ada keperluan minimum dipenuhi. Semasa pemprosesan, jika ada aksara lain yang tinggal, ia akan diabaikan.

Cara – Buat Penasihat Kata Laluan yang Teguh

  • Kaedah 1 - Cipta Persekitaran Nasihat Kata Laluan yang Kuat

  • Kaedah 2 - Semak sama ada kata laluan itu kuat, lemah atau sederhana

  • Kaedah 3 - Semak sama ada kata laluan memenuhi syarat

Buat persekitaran nasihat kata laluan yang kukuh

Dalam kod binaan C++ ini, sistem akan menyemak kekuatan data input (kata laluan). Ia akan mengimbas input untuk mencari semua kriteria yang disebutkan untuk kata laluan yang ideal. Jika semua syarat sepadan, maka ia adalah kata laluan yang ideal. Jika tidak, sebarang aksara hilang daripada input dan ia akan mengembalikan beberapa kata laluan yang dijana secara rawak.

Terjemahan bahasa Cina bagi

Contoh 1

ialah:

Contoh 1

#include <bits/stdc++.h>
using namespace std;
string add_more_char(string str, int need){
   int pos = 0;
   string low_case = "abcdefghijklmno";
   for (int a = 0; a < need; a++) {
      pos = rand() % str.length();
      str.insert(pos, 1, low_case[rand() % 26]);
   }
   return str;
}
string suggester(int m, int o, int a, int d, string str) {
   string num = "0123456789";
   string low_case = "abcdefghijklmno";
   string up_case = "ABCDEFGHIJKLMNO";
   string spl_char = "@#$_()!*&%#+-=.`";
   int pos = 0;
   if (m == 0) {
      pos = rand() % str.length();
      str.insert(pos, 1, low_case[rand() % 26]);
   }
   if (o == 0) {
      pos = rand() % str.length();
      str.insert(pos, 1, up_case[rand() % 26]);
   }
   if (a == 0) {
      pos = rand() % str.length();
      str.insert(pos, 1, num[rand() % 10]);
   }
   if (d == 0) {
      pos = rand() % str.length();
      str.insert(pos, 1, spl_char[rand() % 7]);
   }
   return str;
}
void generate_password(int n, string p){
   int l = 0, u = 0, d = 0, s = 0, need = 0;
   string suggest;
   for (int j = 0; j < n; j++) {
      if (p[j] >= 97 && p[j] <= 122)
         l = 1;
      else if (p[j] >= 65 && p[j] <= 90)
         u = 1;
      else if (p[j] >= 48 && p[j] <= 57)
         d = 1;
      else
         s = 1;
   }
   if ((l + u + d + s) == 4) {
      cout << "Hurra! Your Passcode Is Strong, Go Ahead!" << endl;
      return;
   }
   else
   cout << "Suggested password As Per The Input. Pick One For You! " << endl;
   for (int i = 0; i < 10; i++) {
      suggest = suggester(l, u, d, s, p);
      need = 8 - suggest.length();
      if (need > 0)
         suggest = add_more_char(suggest, need);
      cout << suggest << endl;
   }
}
int main(){
   string input_string = "abonirudra@1607";
   srand(time(NULL));
   generate_password(input_string.length(), input_string);
   return 0;
}

Output

Suggested password As Per The Input. Pick One For You! 
abonirudGra@1607
abConirudra@1607
abonirudra@1E607
abonirudra@16A07
abonirudra@160L7
abNonirudra@1607
aNbonirudra@1607
abonirDudra@1607
aboniruFdra@1607
abonirNudra@1607

Semak sama ada kekuatan kata laluan itu kuat, lemah atau sederhana

Bina kod berdasarkan algoritma di atas dan rentetan pengekodan C++ untuk menyemak kekuatan input. Keseluruhan kaedah mengembalikan "Kuat" sebagai output apabila semua syarat dipenuhi. Jika hanya tiga langkah pertama dipenuhi dan kata laluan sekurang-kurangnya lapan aksara panjang, ia akan mengembalikan "Sederhana".

Terjemahan bahasa Cina bagi

Contoh 2

ialah:

Contoh 2

#include <bits/stdc++.h>
using namespace std;
void printStrongNess(string& input) {
   int n = input.length();
   bool hasLower = false, hasUpper = false;
   bool hasDigit = false, specialChar = false;
   string normalChars = "abcdefghijklmnopqrstu"
   "vwxyzABCDEFGHIJKL023456789 ";
   for (int i = 0; i < n; i++) {
      if (islower(input[i]))
         hasLower = true;
      if (isupper(input[i]))
         hasUpper = true;
      if (isdigit(input[i]))
         hasDigit = true;
      size_t special = input.find_first_not_of(normalChars);
      if (special != string::npos)
         specialChar = true;
   }
   cout << "Strength of password:-";
   if (hasLower && hasUpper && hasDigit &&
       specialChar && (n >= 8))
   cout << "Strong" << endl;
      else if ((hasLower || hasUpper) &&
   specialChar && (n >= 6))
       cout << "Moderate" << endl;
   else
      cout << "Weak" << endl;
}
int main(){
   string input = "Abonirudra@22052023";
   printStrongNess(input);
   return 0;
}

Output

Strength of password:-Strong

Semak kata laluan anda terhadap syarat

Dalam kod ini, kami akan melakukan operasi pengesahan pada kata laluan tertentu. Berikut adalah langkah-langkah khusus -

  • Terima input pengguna.

  • Gabungan kata laluan yang dimasukkan oleh pengguna kini akan disemak.

  • Kata laluan terbahagi kepada tiga jenis: kuat, sederhana dan lemah.

  • Jika semua syarat adalah benar, ia akan menjadi kata laluan yang kukuh.

  • Jika tidak, sederhana atau lemah.

  • Terjemahan bahasa Cina bagi
Contoh 3

ialah:

Contoh 3

#include <bits/stdc++.h>
using namespace std;
void checkpassword(string& password) {
   int n = password.length();
   bool hasLower = false, hasUpper = false, hasDigit = false;
   for (int i = 0; i < n; i++) {
      if (islower(password[i]))
         hasLower = true;
      if (isupper(password[i]))
         hasUpper = true;
      if (isdigit(password[i]))
          hasDigit = true;
   }
   cout << "Strength of password you have entered as per the input :-";
   if ( hasUpper && hasDigit && hasLower && (n >= 6))
      cout << "Strong" << endl;
   else if ((hasLower || hasUpper) && hasDigit && (n >=6))
      cout << "Moderate" << endl;
   else
      cout << "Weak" << endl;
}
int main() {
   cout << "Welcome To The Password Tester! Let's Check Your Password. " << endl;
   cout << "Let's consider the average length of an ideal strong password should be more than 6 character " << endl;
   cout << "Please enter your desired password with :- " << endl;
   cout << " * at least one upper case letter and lower case letter " << endl;
   cout << " * and also need to have at least one digit " << endl; string password;
   cout <<"Enter your monermoto password"<<endl;
   getline(cin,password);
   checkpassword(password);
   return 0;
}

Output

Welcome To The Password Tester! Let's Check Your Password. 
Let's consider the average length of an ideal strong password should be more than 6 character 
Please enter your desired password with :- 
 * at least one upper case letter and lower case letter 
 * and also need to have at least one digit 
Enter your monermoto password
Strength of password you have entered as per the input :-Weak

KESIMPULAN

Daripada artikel ini, kami belajar cara mencipta persekitaran pencadang kata laluan menggunakan C++ dan kemudian cara menilai kualiti kata laluan menggunakan beberapa label (kuat, sederhana, lemah) pada platform khusus itu.

Atas ialah kandungan terperinci Penasihat Kata Laluan yang Kuat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam

Artikel berkaitan

Lihat lagi