Za ustvarjanje enekrat geslo ali edinstven identifikacijski URL

Enkratno geslo (OTP) je geslo, ki velja samo za eno prijavo ali transakcijo v računalniškem sistemu ali drugi digitalni napravi. Za več podrobnosti se nanašajo to . Algoritem Naključno izberite znake iz naših možnosti in iz nje ustvarite niz želene dolžine. OTP so na splošno dolgi 6-7 znakov, naključnost v 6-7 znakih pa skoraj zagotavlja varen način prijave.

OTP se pogosto uporabljajo na spletnih mestih, kot so Facebook Google prijava WiFi- dostop do prijave na železniške portale itd.

Kako se ustvari?

No, velika možnost je, da uporabljajo isti algoritem, kot je ustvarjen OTP. Če je po naključju (zelo redko) že ustvarjen edinstven niz in je povezan z drugo kodo, se uporabi še en naključni niz. Kot kaže, se zdi, da se le šest nizov znakov ustvari naključno za edinstveno identifikacijo vseh kod. Prišel bo čas, ko se bodo lahko izčrpali vsi možni šest znakov. Torej, da se tudi na spletne stvari močno opirajo na naključnost.

Verjetnost trka dveh OTP 

  • Dolžina OTP je 6 in velikost vseh možnih znakov v OTP je 62. Torej je skupno število možnih sklopov para OTP 62 12 .
  • Nekateri od njih so - [{aaaaaaaaa} {aaaaaaaaaaaab} ..... {456789 456788} {456789 456789}]
  • Toda možni sklopi enakega para OTP so: 62 6 . Nekateri od njih so - [{aaaaaaaaa} {aaaaab aaaaaab} ..... {456788 456788} {456789 456789}]
  • Od tod verjetnost trka dveh OTP je: 62 6 / 62 12 = 1/62 6 = 1 /56800235584 = 1.7605561 -11

Torej verjetnost Od dveh trkov OTP sta tako manj verjetno kot obstoj vašega življenja na zemlji (razmerje med številom let, ki jih boste živeli do števila let od začetka vesolja in vsega, kar obstaja). Torej, da so Yetotos bolj varni kot statična gesla! Izvajanje  

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   

Izhod (lahko za vsako vožnjo razlikuje):

 Your OTP is - 8qOtzy  

Časovna kompleksnost: O (n) kjer je n = število znakov v našem OTP Pomožni prostor: Poleg niza, ki ima vse možne znake, potrebujemo o (n) prostora, da zadržimo OTP, kjer je n = število znakov v našem OTP, če vam je všeč geeksforgeeks in želite prispevati Write.geeksforgeeks.org ali pošljite svoj članek na [email protected]. Oglejte si svoj članek, ki se pojavlja na glavni strani Geeksforgeeks in pomaga drugim. Prosimo, napišite komentarje, če se vam zdi kaj napačno ali želite deliti več informacij o zgoraj opisani temi.