Есть ли шанс получить одинаковый ключ при разных данных и возможно-ли взломать ключ? Возможно ли такое, что с помощью данного алгоритма можно получить два одинаковых ключа, но с разными данными? И если да, то примерно какая вероятность такого? И возможно ли взломать ключ?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. Прошу не орать о моем коде.
В данном коде используется функция _gen_salt(msg), которая генерирует соль на основе сообщения, и функция _crypt(msg, bits), которая шифрует сообщение. В коде присутствует генерация случайного ключа key для шифрования.
С вероятностью получения двух одинаковых ключей при разных данных зависит от случайности генерации ключа key с помощью random.randint(12, 1247). Если ключи случайны и пространство ключей достаточно большое, то вероятность получения одинаковых ключей будет очень мала.
Что касается возможности взлома ключа, то этот алгоритм шифрования не представляет надежной защиты, так как непонятно, как происходит шифрование и как этот ключ можно использовать для дешифровки. Однако в целом, без дополнительной информации описать возможность взлома ключа сложно.
Если у вас есть конкретные задачи по шифрованию и защите данных, рекомендуется использовать стандартные и проверенные алгоритмы шифрования, такие как AES, RSA и другие.
В данном коде используется функция _gen_salt(msg), которая генерирует соль на основе сообщения, и функция _crypt(msg, bits), которая шифрует сообщение. В коде присутствует генерация случайного ключа key для шифрования.
С вероятностью получения двух одинаковых ключей при разных данных зависит от случайности генерации ключа key с помощью random.randint(12, 1247). Если ключи случайны и пространство ключей достаточно большое, то вероятность получения одинаковых ключей будет очень мала.
Что касается возможности взлома ключа, то этот алгоритм шифрования не представляет надежной защиты, так как непонятно, как происходит шифрование и как этот ключ можно использовать для дешифровки. Однако в целом, без дополнительной информации описать возможность взлома ключа сложно.
Если у вас есть конкретные задачи по шифрованию и защите данных, рекомендуется использовать стандартные и проверенные алгоритмы шифрования, такие как AES, RSA и другие.