Вы не хотите шифровать с помощью JavaScript, , особенно на стороне клиента, где он открыт для взлома и не имеет криптографически безопасного генератора случайных чисел .
Я пытался реализовать один, но у меня были некоторые проблемы с кодированием.
Вы пытались написать свой собственный алгоритм шифрования?Вы пошли против всего, что дорогой мир безопасности.Нет. Фактические учебники, которые объясняют, как работает шифрование, настолько напуганы, что люди собираются что-то испортить, потому что они не понимают математику, стоящую за этим, я действительно видел это в одном из них:

Если вы не понимаете шифрование, например, что такое «криптографически безопасный генератор псевдослучайных чисел» и обычные атаки на него, вы не должны этого делать.
Есливы не понимаете такие вещи, как атаки по побочным каналам, вы не должны этого делать.
Если вы не понимаете, что происходит в криптографии, и прочитали по крайней мере две книги, у вас нет никакого делареализуя это.
Crypto - это не волшебный черный ящик, это очень ОЧЕНЬ легко облажаться, даже не касаясь какого-либо кода в упакованном решении.
Что должен делать?Забудьте о шифровании JS.Я знаю, я попробовал это сам.Это пустая трата времени.Учитесь на моих ошибках.
Получите сертификат SSL, SSL - лучший способ для нас шифровать сообщения на транспортном уровне от сервера к клиенту.Это настолько безопасно, насколько вы можете получить.Если вы сталкиваетесь с оберегом, который может победить SSL, поверьте мне, ваша криптография на основе JS также будет взломана.
Как только он окажется на сервере, где он защищен от подделки, зашифруйте его.Все остальное - очень долгий путь, чтобы тратить ваше время.
Кроме того, прочитайте эти книги:
Затем, когда вы понимаете, они возвращаются и кричат на меня, почему я не прав, и не понимаете, сколько вам нужно JS на клиенте для криптографии.