Мне нужно реализовать пару функций для обфускации / деобфускации строки в виде:
string cipher(string plainText, string secret)
string decipher(string cipherText, string secret)
Мне нужно, чтобы они были краткими и простыми в реализации. Я надеюсь, например, о странице кода или меньше, что я буду встраивать в свое тело кода без без особых зависимостей . Мне нужно будет реализовать это в C # и vanilla JavaScript в браузере.
Это не обязательно должно быть криптографически безопасно;все нормально, если взломать тривиально .
Больше всего я ищу функцию с превосходным лавинным , то есть небольшими изменениями в вводе простого текстапривести к совершенно другому выводу зашифрованного текста.
Я рассматриваю несколько возможностей, включая XTEA и NTSA . Но то, что я видел до сих пор, - это небольшие изменения, например, конец простого текста приводит только к (несколько) небольшим изменениям конца зашифрованного текста. Следовательно, изменения кажутся локализованными. Это не очень хорошо для моего использования, когда в качестве основного источника энтропии обычный текст будет включать постоянно увеличивающуюся временную метку.
Что такое хорошая функция или алгоритм для достижения этой цели, не прибегая к большим объемам кодаили зависимости?