Limpiar clave PEM

Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función de JS que puedes usar en el propio navegador web o en la consola de depuración, así como en Node.

Las claves PEM se ven así:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0pCCNmUBZWyRTLdHGFk8
MDz2t7Em+cd1kR8KrryZEjqn5VaICEft1+d+Nv3TgmupO+UtJc3Dh2aJTMGzqBD9
I5s6yxZ9DTIQ1EjrkA9v3Qq5Jw2Lk3IRh2syhM7TELvXcPIMRsuphjK88/cjp2FU
P+b4mnLe3kIb8laYVqtKBuod/AldZrky9M8JHf1Xt2PCsaWCjQYAeP8op7NJH756
pCG+gdXdLPFJbeh1ufQGS//+x3GNwAqiOI3F2ijUwOgLgM5sUIBpFAwIsbmk8ICO
f12LZYqhaAUCgW9+ZE3hjHmVt/c+/06uFEFO2tg5rl1RAKmrbRGJ7/bZMsr06wMa
mwIDAQAB
-----END PUBLIC KEY-----

Pero en ocasiones solo necesitamos la cadena en base64 sin encabezado, pie ni saltos de línea, de modo que la clave anterior se podría ver así:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0pCCNmUBZWyRTLdHGFk8MDz2t7Em+cd1kR8KrryZEjqn5VaICEft1+d+Nv3TgmupO+UtJc3Dh2aJTMGzqBD9I5s6yxZ9DTIQ1EjrkA9v3Qq5Jw2Lk3IRh2syhM7TELvXcPIMRsuphjK88/cjp2FUP+b4mnLe3kIb8laYVqtKBuod/AldZrky9M8JHf1Xt2PCsaWCjQYAeP8op7NJH756pCG+gdXdLPFJbeh1ufQGS//+x3GNwAqiOI3F2ijUwOgLgM5sUIBpFAwIsbmk8ICOf12LZYqhaAUCgW9+ZE3hjHmVt/c+/06uFEFO2tg5rl1RAKmrbRGJ7/bZMsr06wMamwIDAQAB

He escrito esta función de JavaScript para extraer solo el base64 de una clave en formato PEM, ya sea una clave pública o privada. Recibe una clave en formato PEM y devuelve solo la parte “importante” sin saltos de línea ni espacios.

El código es el siguiente:

const limpiarClave = (clave) => {
    return clave
        .replaceAll("-----BEGIN PUBLIC KEY-----", "")
        .replaceAll("-----BEGIN PRIVATE KEY-----", "")
        .replaceAll("-----END PUBLIC KEY-----", "")
        .replaceAll("-----END PRIVATE KEY-----", "")
        .replaceAll("-----END RSA PRIVATE KEY-----", "")
        .replaceAll("-----BEGIN RSA PRIVATE KEY-----", "")
        .replaceAll("-----BEGIN RSA PUBLIC KEY-----", "")
        .replaceAll("-----END RSA PUBLIC KEY-----", "")
        .replaceAll("\n", "");
}

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *