Есть ли шанс получить одинаковый ключ при разных данных и возможно-ли взломать ключ? Возможно ли такое, что с помощью данного алгоритма можно получить два одинаковых ключа, но с разными данными? И если да, то примерно какая вероятность такого? И возможно ли взломать ключ?import random
def _gen_salt(msg):
salt = 0
for x in msg:
salt = ord(x) ** len(msg)
salt = salt + salt - len(msg) * salt
return salt
def _crypt(msg, bits=64):
# Stage 1 string
enc = ""
# Stage 2 string
val = ""
# Salt
salt = _gen_salt(msg)
# Key
key = random.randint(12, 1247)
# Stage 1
for c in msg:
val = 500 - ord(c)
# IDK how it works, just random operators
val = str(hex(int(
salt * val + val - key * key ^ key ** val * val
)))
enc += val[3:][:128] + "-"
# Stage 2
for x in enc.split("-"):
if x:
val += str(hex(int(
int(x, 16) * salt * key % key
)))
# Parse encrypted string
val = val.replace("0", "").replace("x", "")
val = val[::2] + val
val = val[:128] + val[:512:salt - key]
val = val[::3] + val[::2] + val
# Fix size
if len(val) = bits:
break
val += val[::pos]
pos += 1
if pos > 100:
pos = 1
# Return encrypted string
return val[:bits] + val[:bits:2]
def crypt(msg, bits=128):
# Encrypt string and fix string length, if possible
enc = _crypt(msg, bits).replace("-", "")[:bits]
return enc, len(enc)
P.S. Прошу не орать о моем коде.

21 Авг 2019 в 07:11
186 +1
1
Ответы
1

В данном коде используется функция _gen_salt(msg), которая генерирует соль на основе сообщения, и функция _crypt(msg, bits), которая шифрует сообщение. В коде присутствует генерация случайного ключа key для шифрования.

С вероятностью получения двух одинаковых ключей при разных данных зависит от случайности генерации ключа key с помощью random.randint(12, 1247). Если ключи случайны и пространство ключей достаточно большое, то вероятность получения одинаковых ключей будет очень мала.

Что касается возможности взлома ключа, то этот алгоритм шифрования не представляет надежной защиты, так как непонятно, как происходит шифрование и как этот ключ можно использовать для дешифровки. Однако в целом, без дополнительной информации описать возможность взлома ключа сложно.

Если у вас есть конкретные задачи по шифрованию и защите данных, рекомендуется использовать стандартные и проверенные алгоритмы шифрования, такие как AES, RSA и другие.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир