Codificar string en javascript

re4q

Hola, estoy mirando de codificar algo tipo: '123123-2332-455' en 'kdulqh'.
He encontrado muchas librerias custom pero me flipa que no haya nada nativo en javascript para conseguir este resultado.

Lo mas parecido que he conseguido es lo siguiente:

const roomIDEncoded = String(Buffer.from(roomId, 'hex').toString('ascii'));

Lo paso a hex y me devuelve simbolos muy xungos y luego a ascii, el problema es que el resultado final tiene espacios y no me sirve ya que es algo que va a ir a una url.

Original: 1663170978997-1024822-46
Resultado: c x

Resultado parecido que me gustaria: kgl423qw

Seal67

¿No te sirve después de generarlo reemplazar los espacios con otro carácter especial o eliminarlos?

SilentMike

Un string codificado que va en una url, porque no usas base64?

2 respuestas
Seal67

#3 Porque quiere JavaScript nativo, sin usar librerías.

2 respuestas
SilentMike

#4 https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa-dev

re4q

#3 he probado en base64 pero el resultado es enorme
#4 puedes codificar base64 sin usar ninguna libreria externa..
No me serviria ni recortar ni nada ya que luego lo decodifico por otro lado obviamente..
Me podria inventar mi propia codificación, pero no me creo que no haya nada nativo como digo.

NeoDunadan

Yo para generar IDs aleatorias lo que tengo es esta función, que la llamo y genera un string (puedes controlar el tamaño jugando con substring(x,y)).

const randomID = () => {
  return Math.random().toString(36).substring(2, 8);
};

No sé cómo será tu app, pero entiendo que podrías relacionar de alguna forma el string que tienes con el ID aleatorio y guardarlo en alguna parte...

PhDfailer

#1

si tu problema son los espacios pues quitaselos y sustituyelos por un carácter que se permita en la url

 let final = roomIDEncoded.split(' ').join('&')

Usuarios habituales

  • PhDfailer
  • NeoDunadan
  • re4q
  • SilentMike
  • Seal67