Из того, что вы пишете, я предполагаю, что вы хотите сделать следующее:
# You have some encryption function that works like this
CYPHERTEXT = ENCRYPT(PLAINTEXT, KEY)
PLAINTEXT = DECRYPT(CYPHERTEXT, KEY)
# Encrypting the password when entered
ENCRYPTED_TABLE = ENCRYPT(SOME_TABLE, PASSWORD + SALT)
# Checking validity
DECRYPT(ENCRYPTED_TABLE, PASSWORD + SALT) == SOME_TABLE
Прежде всего: Ни один здравомыслящий человек не использовал бы такую самодельную схему в производственной системе .Так что, если вы задумывались о реализации этого в реальном мире, пожалуйста, вернитесь.Даже не пытайтесь писать код самостоятельно, используйте проверенную программную библиотеку, которая реализует общепринятые алгоритмы.
Теперь, если вы хотите думать об этом как о ментальном упражнении, вы можете начать так:
Если вы предполагаете, что злоумышленник будет знать все части уравнения, кроме действительного пароля.Злоумышленник, который хочет получить пароль, поэтому уже знает зашифрованный текст, открытый текст и часть пароля.
Вероятность успеха будет зависеть от фактической схемы шифрования и, возможно, режима цепочки.
Я сам не криптоаналитик, но, не слишком задумываясь об этом, я чувствую, что может быть несколько углов атаки.