我正在写作创造一个串行代码生成器/验证器,但我似乎无法得到如何做一个适当的检查。串行密钥的生成和验证
这里是我的发电机(是的,这是没有任何幻想,但是这纯粹是我自己的教育,所以它会做):
# Serial generator
# Create sequences from which random.choice can choose
Sequence_A = 'ABCDEF'
Sequence_B = 'UVWQYZ'
Sequence_C = 'NOPQRS'
Sequence_D = 'MARTIN'
import random
# Generate a series of random numbers and Letters to later concatenate into a pass code
First = str(random.randint(1,5))
Second = str(random.choice(Sequence_A))
Third = str(random.randint(6,9))
Fourth = str(random.choice(Sequence_B))
Fifth = str(random.randint(0,2))
Sixth = str(random.choice(Sequence_C))
Seventh = str(random.randint(7,8))
Eighth = str(random.choice(Sequence_D))
Ninth = str(random.randint(3,5))
serial = First+Second+Third+Fourth+Fifth+Sixth+Seventh+Eighth+Ninth
print serial
我想提出一个通用的检查,以便我验证代码将接受由此产生的任何密钥。
我的直觉是建立检查,如本:
serial_check = raw_input("Please enter your serial code: ")
# create a control object for while loop
control = True
# Break up user input into list that can be analyzed individually
serial_list = list(serial_check)
while control:
if serial_list[0] == range(1,5):
pass
elif serial_list[0] != range(1,5):
control = False
if serial_list[1] == random.choice('ABCDEF'):
pass
elif serial_list[1] != random.choice('ABCDEF'):
control = False
# and so on until the final, where, if valid, I would print that the key is valid.
if control == False:
print "Invalid Serial Code"
我很清楚的是,第二类型的检查不会在所有的工作,但它是一个占位符,因为我没有想法如何检查。
但我认为检查数字的方法可行,但它也没有。
我明显是python的新手,我很难过。任何帮助将不胜感激!
谢谢!你知道我开始认为我应该通过最初的条件,但我想把它留在 - 不知道为什么现在。 – user679400 2011-04-07 19:38:07