Saltar al contenido

Etiqueta HTML <keygen>

La etiqueta <keygen> es uno de los elementos HTML5. Se encarga de generar un par de claves (pública y privada) utilizadas para cifrar y descifrar los datos enviados al servidor cuando se envía un formulario HTML. La clave pública se envía al servidor junto con los datos del formulario, mientras que la clave privada nunca sale del dispositivo del usuario y es gestionada por el navegador o el llavero del sistema operativo.

Su propósito principal era el cifrado y la autenticación de formularios, en lugar de las firmas digitales.

El elemento <keygen> permite al usuario elegir entre una variedad de opciones de tamaño de clave y especificar dónde generar la clave, por ejemplo, en una tarjeta inteligente o en un software almacenado en el disco. Esta funcionalidad funciona tanto con hardware criptográfico como con la generación de claves basada en software estándar.

Sintaxis

La etiqueta <keygen> se coloca dentro del contenedor <form>; la etiqueta de cierre no es obligatoria. Sin embargo, en XHTML, la etiqueta <keygen> debe ser autocierrante (<keygen />).

Ejemplo de la etiqueta HTML <keygen>:

Etiqueta HTML <keygen>

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <form action="/form/submit" method="post">
      <keygen name="rsaPublicKey" keytype="rsa">
      User’s name:
      <input type="text" name="usr_name" />
      <input type="submit" />
    </form>
  </body>
</html>

Resultado

ejemplo de la etiqueta keygen

Compatibilidad con navegadores

  • Chrome, Edge, Firefox, Safari, Opera: Obsoleto y eliminado. Todos los principales navegadores eliminaron el soporte para <keygen> en 2021 debido a problemas de seguridad y usabilidad.
  • Navegadores móviles: No compatible.

peligro

Ten en cuenta que la '<keygen>' tag está obsoleta en HTML5 y no debería utilizarse. En su lugar, se recomienda utilizar otros métodos de autenticación, como OAuth o OpenID.

Atributos

AtributoValorDescripción
autofocusautofocusIndica que el elemento recibe automáticamente el foco cuando se carga la página. No es compatible con IE y Firefox.
challengestringDefine una cadena de desafío que se envía junto con la clave pública. Si se omite, el valor predeterminado es una cadena vacía.
disableddisabledIndica que el elemento <keygen> debe estar deshabilitado.
formform_idAsocia el elemento con un formulario específico por ID. No es compatible con IE.
keytypersa, dsa, ecDefine el algoritmo de cifrado de la clave. rsa es el único valor estandarizado oficialmente. dsa y ec nunca fueron estandarizados y tenían una compatibilidad inconsistente entre navegadores. rsa (predeterminado) ofrece seguridad alta/media. dsa permite seleccionar el tamaño de la clave. ec ofrece seguridad alta/media.
namestringDefine el nombre del elemento <keygen>.

La etiqueta <keygen> es compatible con los Atributos globales y los Atributos de eventos.

Práctica

¿Qué es cierto sobre la etiqueta HTML <keygen>?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.