Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
from string import ascii_lowercase, digits
class MD5Checker(object):
def __init__(self):
self.allow_chars = set(ascii_lowercase)
self.allow_chars.update(digits)
def check(self, md5value):
"""
Überprüft ob es sich um eine MD5-hexdigest Summe handeln könnte
wirft einen ValueError, wenn es keine MD5 Summe sein kann
"""
if len(md5value) != 32:
raise ValueError("len error")
md5value_set = set(md5value)
if not md5value_set.issubset(self.allow_chars):
diff = md5value_set.difference(self.allow_chars)
diff = ", ".join(diff)
raise ValueError("Char error. (Char %s not allowed.)" % diff)
checker = MD5Checker()
import md5
testmd5 = md5.new("test").hexdigest()
print testmd5
checker.check(testmd5)
testmd5 = "098f6bc$4621d3_3cade4e8326&7b4f6"
print testmd5
checker.check(testmd5)
from string import hexdigits
class MD5Checker(object):
def __init__(self):
self.allow_chars = set(hexdigits)
def check(self, md5value):
"""
Überprüft ob es sich um eine MD5-hexdigest Summe handeln könnte
wirft einen ValueError, wenn es keine MD5 Summe sein kann
"""
if len(md5value) != 32:
raise ValueError("len error")
md5value_set = set(md5value)
if not md5value_set.issubset(self.allow_chars):
diff = md5value_set.difference(self.allow_chars)
diff = ", ".join(diff)
raise ValueError("Char error. (Char %s not allowed.)" % diff)
checker = MD5Checker()
import md5
testmd5 = md5.new("test").hexdigest()
print testmd5
checker.check(testmd5)
testmd5 = "098f6bc$4621d3_3cade4e8326&7b4f6"
print testmd5
checker.check(testmd5)
Warum ist das eine Klasse und keine Funktion? Warum hat die Funktion keinen Rückgabewert sondern Ausnahmen? Und muss es wirklich so detailliert sein? Wenn nicht kannst Du einfach die Länge prüfen und mit ``int(x, 16)`` versuchen eine Zahl daraus zu machen. Wenn das nicht klappt, dann war es keine Hexzahl.