Python 使用素数生成随机密码
我正在做一个大学项目,从打印出两个给定输入之间的所有素数开始。后来有人告诉我,它必须与我的课程“网络管理”相关,因此我想在脚本末尾添加一个密码生成器,以确保网络安全 我已经把所有的代码都写出来了,但是我有一个问题,就是不能在我打印出来的列表中使用随机素数。它只使用打印的最后一个数字,我明白为什么,但无论如何,我可以使它使用一个随机素数,还是我必须将数字存储在某个地方Python 使用素数生成随机密码,python,security,scripting,numbers,Python,Security,Scripting,Numbers,我正在做一个大学项目,从打印出两个给定输入之间的所有素数开始。后来有人告诉我,它必须与我的课程“网络管理”相关,因此我想在脚本末尾添加一个密码生成器,以确保网络安全 我已经把所有的代码都写出来了,但是我有一个问题,就是不能在我打印出来的列表中使用随机素数。它只使用打印的最后一个数字,我明白为什么,但无论如何,我可以使它使用一个随机素数,还是我必须将数字存储在某个地方 #A program to count the prime numbers from a given start to a giv
#A program to count the prime numbers from a given start to a given end
#importing math function
import math
import os, random, string
#Input the number to start counting from
Starting_number = input("Enter the starting number: ")
#Input the number to end the count on.
Ending_number = input("Enter the number you want to count up to: ")
#if Starting_number is less than 0 it will print out a suitable message.
if Starting_number < 0:
print 'Invalid entry, please enter a positiv number. \nWill count from ',Starting_number, 'to 0 and begin prime number count to',Ending_number, '.'
#If Ending_number is less than or equals to 0 then it will print out a suitable message.
if Ending_number <= 0:
print 'Invalid entry on last input \nPlease enter two positive numbers for the count to work.'
#Starting loop as long as the current count is between Starting_number and Ending_number
for num in range(Starting_number, Ending_number):
#
if all(num%i !=0 for i in range(2,num)):
print num
if num >= 1 and num <= 100:
length = 4
chars = string.ascii_letters + string.digits + '!@#$%^&*()'
random.seed = (os.urandom(1024))
print ''.join(random.choice(chars) for i in range(length))
if num >= 101 and num <= 200:
length = (Ending_number / Starting_number) * 5 + 11
if length >= num:
length = num / 100
chars = string.ascii_letters + string.digits + '!@#$%^&*()'
random.seed = (os.urandom(1024))
print ''.join(random.choice(chars) for i in range(length))
当你检测到素数时,把它们添加到一个列表中 而不仅仅是
print num
将其添加到列表中,如下所示:
primes.append(num)
然后,您可以从“素数”列表中随机选择一项:
from random import choice
print choice(primes)
我真的很想把它作为一个评论来添加,但是我没有足够的积分来添加评论。对于密码生成器,您不希望它是素数。你应该随机选择一个数字。如果你有一个32位的数字,如果这个数字在整个32位空间中是随机的,那么你就有了更多的熵。如果你把它限制为素数,你就大大减少了空间。与您的要求没有直接关系,但了解可能很有用。避免在python2中输入。它不接受数字作为输入。它执行python代码。如果在提示输入起始号码时尝试输入[1,2,3],您将看到一个意想不到的错误。此外,用户还可以插入诸如_import _os.systemkill my machine命令之类的内容,而真正糟糕的事情可能会发生。要请求整数,只需使用intraw_input。。。。或浮点数输入。。。对于浮点数。在python3中,名为input的函数实际上是原始输入,因此必须添加int。。不管怎样打电话。