Da biste generirali jednokratnu lozinku ili jedinstveni URL identifikacije

Jednokratna lozinka (OTP) je lozinka koja vrijedi za samo jednu sesiju prijave ili transakciju na računalnom sustavu ili drugom digitalnom uređaju. Za više detalja Pogledajte ovaj . Algoritam Nasumično odaberite likove iz svih naših mogućnosti i generiraju niz željene duljine iz njega. OTP-ovi su uglavnom dugi 6-7 znakova, a slučajnost u 6-7 znakova gotovo jamči siguran način prijave.

OTP-ovi se široko koriste na web stranicama poput- Facebook Google WiFi- pristup željezničkim portalu za prijavu itd.

Kako se generira?

Pa, velika je mogućnost da koriste isti algoritam kao što se generira OTP. Ako je slučajno (vrlo rijedak) generirani jedinstveni niz već generirani i povezan je s drugim kodom, tada se koristi drugi slučajni niz. Prema sada, čini se da se samo šest znakova generira nasumično za jedinstvenu identifikaciju svih kodova. Doći će vrijeme kada se mogu iscrpiti sve moguće žice od šest znakova. Dakle, da, čak se i stvari povezane s web također u velikoj mjeri oslanjaju na slučajnost.

Vjerojatnost sudara od dva OTP -a 

  • Duljina OTP -a je 6, a postavljena veličina svih mogućih znakova u OTP -u je 62. godine. Dakle, ukupni broj mogućih skupova para OTP -a je 62 12 .
  • Neki od njih su - [{aaaaaaaaaa} {aaaaaaaaaaaab} ..... {456789 456788} {456789 456789}]
  • Ali mogući skupovi jednakog para OTP -a su: 62 6 . Neki od njih su - [{aaaaaaaaaa} {aaaaab aaaaaab} ..... {456788 456788} {456789 456789}]
  • Otuda vjerojatnost sudara od dva OTP -a je: 62 6 / 62 12 = 1/62 6 = 1/56800235584 = 1.7605561 -11

Dakle vjerojatnost Od dva OTP -ova su sudaranje manje vjerojatna kao i postojanje vašeg života na Zemlji (omjer broja godina u kojem ćete živjeti u broju godina od početka svemira i svega što postoji). Dakle, Yesotps su puno sigurniji od statičkih lozinki! Provedba  

CPP
   // A C/C++ Program to generate OTP (One Time Password)   #include       using     namespace     std  ;   // A Function to generate a unique OTP everytime   string     generateOTP  (  int     len  )   {      // All possible characters of my OTP      string     str     =     'abcdefghijklmnopqrstuvwxyzABCD'      'EFGHIJKLMNOPQRSTUVWXYZ0123456789'  ;      int     n     =     str  .  length  ();      // String to hold my OTP      string     OTP  ;      for     (  int     i  =  1  ;     i   <=  len  ;     i  ++  )      OTP  .  push_back  (  str  [  rand  ()     %     n  ]);      return  (  OTP  );   }   // Driver Program to test above functions   int     main  ()   {      // For different values each time we run the code      srand  (  time  (  NULL  ));      // Declare the length of OTP      int     len     =     6  ;      printf  (  'Your OTP is - %s'       generateOTP  (  len  ).  c_str  ());      return  (  0  );   }   
Java
   // A Java Program to generate OTP (One Time Password)   class   GFG  {   // A Function to generate a unique OTP everytime   static     String     generateOTP  (  int     len  )   {      // All possible characters of my OTP      String     str     =     'abcdefghijklmnopqrstuvwxyzABCD'      +  'EFGHIJKLMNOPQRSTUVWXYZ0123456789'  ;      int     n     =     str  .  length  ();      // String to hold my OTP      String     OTP  =  ''  ;      for     (  int     i     =     1  ;     i      <=     len  ;     i  ++  )      OTP     +=     (  str  .  charAt  ((  int  )     ((  Math  .  random  ()  *  10  )     %     n  )));      return  (  OTP  );   }   // Driver code   public     static     void     main  (  String  []     args  )   {      // Declare the length of OTP      int     len     =     6  ;      System  .  out  .  printf  (  'Your OTP is - %s'       generateOTP  (  len  ));   }   }   // This code is contributed by PrinciRaj1992   
Python
   # A Python3 Program to generate OTP (One Time Password)   import   random   # A Function to generate a unique OTP everytime   def   generateOTP  (  length  ):   # All possible characters of my OTP   str   =   'abcdefghijklmnopqrstuvwxyzAB      CDEFGHIJKLMNOPQRSTUVWXYZ0123456789'  ;   n   =   len  (  str  );   # String to hold my OTP   OTP   =   ''  ;   for   i   in   range  (  1    length  +  1  ):   OTP   +=   str  [  int  (  random  .  random  ()  *  10  )   %   n  ];   return   (  OTP  );   # Driver code   if   __name__   ==   '__main__'  :   # Declare the length of OTP   length   =   6  ;   print  (  'Your OTP is - '     generateOTP  (  length  ));   # This code contributed by Rajput-Ji   
C#
   // A C# Program to generate OTP (One Time Password)   using     System  ;   class     GFG     {      // A Function to generate a unique OTP everytime      static     string     generateOTP  (  int     len  )      {      // All possible characters of my OTP      string     str     =     'abcdefghijklmnopqrstuvwxyzABCD'      +     'EFGHIJKLMNOPQRSTUVWXYZ0123456789'  ;      int     n     =     str  .  Length  ;      // Creating a new Random object      Random     rand     =     new     Random  ();      // String to hold my OTP      string     OTP     =     ''  ;      for     (  int     i     =     1  ;     i      <=     len  ;     i  ++  )      OTP     +=     (  str  [((  int  )((  rand  .  Next  ()     *     10  )     %     n  ))]);      return     (  OTP  );      }      // Driver code      public     static     void     Main  (  string  []     args  )      {      // Declare the length of OTP      int     len     =     6  ;      Console  .  WriteLine  (  'Your OTP is - '      +     generateOTP  (  len  ));      }   }   // This code is contributed by phasing17   
JavaScript
   // JavaScript Program to generate OTP (One Time Password)   // A Function to generate a unique OTP everytime   function     generateOTP  (  length  )   {      // All possible characters of my OTP      let     str     =     'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'  ;      let     n     =     str  .  length  ;      // String to hold my OTP      let     OTP     =     ''  ;      for     (  var     i     =     1  ;     i      <=     length  ;     i  ++  )      OTP     +=     str  [(  Math  .  floor  (  Math  .  random  ()     *     10  )     %     n  )];      return     (  OTP  );   }   // Driver code   // Declare the length of OTP   let     length     =     6  ;   console  .  log  (  'Your OTP is - '       generateOTP  (  length  ));   // This code is contributed by phasing17   

Izlaz (može biti različit za svaku vožnju):

 Your OTP is - 8qOtzy  

Vremenska složenost: O (n) gdje je n = broj znakova u našem OTP -u Pomoćni prostor: Osim niza koji imaju sve moguće znakove, potreban nam je (n) prostor da zadrži OTP gdje je n = broj znakova u našem OTP -u ako volite GeeksforGeeks i želite doprinijeti, možete i napisati članak koristeći koristeći članak koristeći i članak koristeći članak koristeći članak koristeći i članak koristeći članak koristeći i članak koristeći članak koristeći i članak koristeći i članak koristeći i članak write.geeksforgeeks.org Ili pošaljite svoj članak na [email protected]. Pogledajte svoj članak koji se pojavljuje na glavnoj stranici GeeksforGeeks i pomozite drugim štreberima. Napišite komentare ako pronađete nešto netočno ili želite podijeliti više informacija o gore opisanoj temi.