Здравствуйте!
Хочется знать, как улучшить код, написанный на Python. Давно не писал на python. Многое позабыл.
Генератора ключа для
Код:
Хочется знать, как улучшить код, написанный на Python. Давно не писал на python. Многое позабыл.
Генератора ключа для
Ссылка скрыта от гостей
от Касперского.Код:
Python:
import random
def gen_key_part():
num1 = str(random.randint(0, 9))
num2 = str(random.randint(0, 9))
num3 = str(random.randint(0, 9))
num4 = str(random.randint(0, 9))
# Генерация части ключа
final = num1 + num2 + num3 + num4
return final
def sum_ord(key_part):
num1 = key_part[0]
num2 = key_part[1]
num3 = key_part[2]
num4 = key_part[3]
# Алгорит сложения в crackme
sum = ord(num1) + ord(num2) + ord(num3) + ord(num4) + ord(num4) + ord(num4)
sum_final = ord(num4) + sum - 336
return sum_final
def shr(key):
print(key)
a = key[0:4]
b = key[5:9]
c = key[10:14]
d = key[15:19]
# Алгоритм сдвига по битам в crackme
x = sum_ord(a) + sum_ord(b) + sum_ord(c) + sum_ord(d)
x = x >> 2
return x
def check_key(key):
i = 0
while i != 4:
first = 0 + i
second = 5 + i
third = 10 + i
four = 15 + i
# Проверка ключа
if sum_ord(key[0:4]) != shr(key) or sum_ord(key[5:9]) != shr(key) or sum_ord(key[10:14]) != shr(key) or sum_ord(key[15:19]) != shr(key):
return False
if int(key[first]) == int(key[second]):
return False
if int(key[second]) == int(key[third]):
return False
if int(key[third]) == int(key[four]):
return False
i += 1
def generate_key():
key = gen_key_part() + '-' + gen_key_part() + '-' + gen_key_part() + '-' + gen_key_part() # Генерация ключа
# Проверяем ключ и печатаем true или false
n = 1
while n != 9999:
if check_key(key) == False:
key = gen_key_part() + '-' + gen_key_part() + '-' + gen_key_part() + '-' + gen_key_part()
print('false')
else:
print('True key ' + key)
break
generate_key()