Advertisement
rfmonk

passwdGen.py

Nov 30th, 2013
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.93 KB | None | 0 0
  1. #! /usr/bin/env python
  2. #
  3. # by Tesla and thanks to Mad_Dev
  4.  
  5. import sys
  6. import string
  7. import random
  8. import argparse
  9.  
  10. WHITE = '\033[97m'
  11. GREEN = '\033[92m'
  12. NORMAL = '\003[0m'
  13.  
  14. parser = argparse.ArgumentParser(description = 'Generate random password')
  15. parser.add_argument("-d", metavar = "", type = int, help = "number of digits")
  16. parser.add_argument("-l", metavar = "", type = int, help = "number of lower case char")
  17. parser.add_argument("-u", metavar = "", type = int, help = "number of upper case char")
  18. parser.add_argument("-s", metavar = "", type = int, help = "number of spacial char")
  19. parser.add_argument("-o", metavar = "", help = "output to store the password")
  20. parser.add_argument("-n", metavar = "", help = "append name to generated password")
  21.  
  22. if len(sys.argv) == 1:
  23.       sys.argv.append('-h')
  24.       lenght = 30
  25.       passwd = string.digits + string.ascii_lowercase + string.punctuation + string.ascii_uppercase
  26.       print('')
  27.       print(WHITE + 'Password: ' + GREEN + ''.join(random.choice(passwd) for x in range(lenght)) + NORMAL)
  28.       print('')
  29. args = parser.parse_args()
  30.  
  31. i = 0
  32.  
  33. passwd = ''
  34.  
  35. if args.d is not None :
  36.       while i < args.d :
  37.             passwd += ''.join(random.choice(string.digits))
  38.             i += 1
  39. if args.l is not None :
  40.       i = 0
  41.       while i < args.l :
  42.             passwd += ''.join(random.choice(string.ascii_lowercase))
  43.             i += 1
  44. if args.s is not None :
  45.       i = 0
  46.       while i < args.s :
  47.             passwd += ''.join(random.choice(string.punctuation))
  48.             i += 1
  49. if args.u is not None :
  50.       i = 0
  51.       while i < args.u :
  52.             passwd += ''.join(random.choice(string.ascii_uppercase))
  53.             i += 1
  54. if args.o is not None:
  55.       doc = open(args.o, 'a')
  56.       if args.n is None:
  57.         args.n = '<empty>'
  58.       doc.write(args.n + '::' + passwd + '\n')
  59.       doc.close()
  60.            
  61. shuffle = list(passwd)
  62. random.shuffle(shuffle)
  63. passwd = ''.join(shuffle)
  64. print(WHITE + 'Password: ' + GREEN + passwd)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement