Я хочу надежно зашифровать строку текста и каждый раз иметь зашифрованную строку, но всегда иметь возможность расшифровывать.
Это чрезвычайно распространенное требование.
Каждый ответ пока говорит, что используется соль . Это неверно , как вы могли бы знать, если бы прочитали первое предложение на странице Википедии по теме:
"В криптографии соль состоит из случайных битов, создающих один из входов односторонней функции."
Хотите одностороннюю функцию? Нет. Вы только что сказали, что должны иметь возможность расшифровывать строку, чтобы она не могла быть односторонней функцией.
То, что вы хотите, это вектор инициализации .
"В криптографии вектор инициализации является входом фиксированного размера для криптографического примитива, который обычно требуется случайным или псевдослучайным. Рандомизация имеет решающее значение для схем шифрования для достижения семантической безопасности, свойство, при котором повторное использование схемы в соответствии с один и тот же ключ не позволяет злоумышленнику определить отношения между сегментами зашифрованного сообщения. "
Вы мудро указываете:
Я полный нуб шифрования!
Тогда не пытайтесь делать это самостоятельно; Вы поймете это неправильно. Крипто очень легко использовать для построения системы, которую you , нуб, не сможет сломать. Помните, ваша цель - создать систему, которую не сможет сломать тот, кто знает о криптографии гораздо больше, чем вы .
Кроме того, просить случайных незнакомцев о помощи в Интернете - плохой способ узнать правду о криптографии. Большинство людей, которые могут ответить на этот вопрос, в том числе и я, лишь немного нубистки, чем вы. Просто взгляните на все ужасные советы на этой странице. Например, два ответа предлагают использовать текущее время в качестве случайной соли. То есть полное безумие ; вся точка соли в том, что она не предсказуема заранее ! Получите совет от настоящих экспертов, которые знают, о чем говорят.
Мой совет: наймите специалиста для решения вашей конкретной проблемы. Чтобы узнать о криптографии, начните с некоторых вводных текстов, таких как «Прикладная криптография», чтобы понять, какие проблемы крипто действительно решает и как эффективно их использовать. Crypto - это не волшебная фея пыли, которую вы брызгаете на данные, чтобы обеспечить их безопасность; это только одна маленькая часть всей стратегии защиты данных от атак.