Executando verificação de segurança...
3

Só um detalhe (porque sou um cara chato e pedante): atob e btoa são funções para converter de/para Base64. E Base64 não é um algoritmo de hash. Base64 é reversível (vc consegue voltar para a string original), mas um algoritmo de hash não é.

Ah, e Base64 não é criptografia, por isso "encrypt" e "decrypt" acabam não sendo bons nomes. No fundo vc só está fazendo uma conversão de dados (sim, Base64 só converte/codifica (que é diferente de criptografar) os bytes para um subconjunto do ASCII). Talvez "encode" e "decode" faça mais sentido, pois esta é a terminologia padrão para algoritmos de codificação de dados = como é o caso do Base64 (inclusive, muitas API's usam nomes como encodeBase64 e decodeBase64, por exemplo).

Sei que parece frescura, mas acho importante a gente dar os nomes certos para as coisas. Isso ajuda muito na hora de programar. Sem contar que nossa área já sofre demais com nomenclatura não-padronizada e conceituação errada das coisas, e propagar esses pequenos erros (que no longo prazo vão se acumulando, até ficarem fora de controle) é algo que deveria ser evitado.


Pra completar, a função unescape está obsoleta e a documentação da MDN diz para usar decodeURIComponent ou decodeURI no lugar.

Ou seja, ao fazer unescape(encodeURIComponent(namesJoint)), no fundo vc está fazendo o mesmo que decodeURIComponent(encodeURIComponent(namesJoint)), que na prática é o mesmo que simplesmente usar namesJoint diretamente. A diferença é que unescape aceita sequências de 4 dígitos hexadecimais e decodeURIComponent não, mas como encodeURIComponent só gera sequências com 2 dígitos, na prática toda essa volta que vc fez não fará diferença, e bastaria fazer simplesmente btoa(namesJoint).

O mesmo vale para escape, que segundo a documentação, também está obsoleto, sendo recomendado o uso de encodeURIComponent ou encodeURI no lugar. Ou seja, decodeURIComponent(escape(atob(encodedStr))) seria equivalente a decodeURIComponent(encodeURIComponent(atob(encodedStr))) e portanto também é desnecessário, podendo fazer apenas atob(encodedStr).

2

Muito bom!

Sobre os métodos: realmente... sempre misturo encryt e encode 😪...
Eu já passei por isso vária vezes, mas sempre misturo um com o outro haha

E não, não parece nenhum pouco com frescura pra mim.

E sobre o segundo ponto: realmente, está tanto depreciado quanto desnecessário kkkkk
Vous subir essas mudanças no próximo commit.

Muito obrigado!