A simple python program to create a random password without using any libraries using prime number is as follows
alpha_lower = 'abcdefghijklmonpqrstuvwxyz'
alpha_upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
digits = '0123456789'
spcialchars = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
allcharrs = alpha_lower + alpha_upper + digits + spcialchars
primen = 3
def seed(n):
global primen
primen = n
primen = getNextPrime()
def isPrime(n):
x = 2
for i in range(2, n):
if (n % i == 0):
return False
return True
def getNextPrime():
global primen
primen += 1
while not isPrime(primen):
primen +=1
return primen
def getRandom():
p = getNextPrime()
ir = p ** (1/2)
r = str(ir).split('.')[1]
return r
def genPassword(length=8):
ran = getRandom()
#print("randoom number: {}".format(ran))
ran = list(map(int, ran))
passwd = ''
for i in range(length):
char_index = ran[i]
char = allcharrs[char_index]
#print("Char index {} and char: {}".format(char_index, char))
passwd += char
return passwd
Random numbers created by above program is not truly random, it was an effort to create random password with out using any library
Same program to create random password using random and string library is as follows
import string
import random
def genPassword(length=8):
assert 8 <= length <= 15, "Minimum Lenght must be 8 and max is 15"
password_chars = string.ascii_letters + string.digits + string.punctuation
rand_password = random.sample(password_chars, length)
rand_password = ''.join(rand_password)
return rand_password
Leave a Reply