Code has been added to clipboard!

HTML keygen Tag

Reading time 2 min
Published Jun 29, 2017
Updated Oct 2, 2019

HTML keygen: Main Tips

  • The HTML <keygen> element generated a private and public key pair, which was used while submitting an HTML <form>.
  • keygen HTML usually had attributes such as autofocus, challenge, disabled, and form.
  • In HTML5, keygen is no longer supported.

keygen Explained

After HTML <keygen> created a public key, it was sent to a web server along with the other form inputs. The private key was stored locally. Web browsers used these keys to generate a certificate for secure data communication between a web browser and a web server.

Note: the functionality of <keygen> in HTML depended on the web browser and the corresponding web server program.

The example below defines a key-pair used while submitting an HTML <form>.

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form">
  <input type="submit" value="Login">
</form>

Attributes for keygen

autofocus

It sets focus to the element after a web page loads.

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form" autofocus>
  <input type="submit" value="Login">
</form>

challenge

It defines a challenge string for validation on a web server.

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form" challenge="staff_login">
  <input type="submit" value="Login" >
</form>

disabled

It sets the element disabled.

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form" disabled>
  <input type="submit" value="Login">
</form>

form

It defines a space separated list of form ID's.

Example
<form id="user_login" action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form" form="user_login">
  <input type="submit" value="Login">
</form>

keytype

It defines the type of algorithm to be used for key generation.

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form" keytype="dsa">
  <input type="submit" value="Login">
</form>

name

It defines a name for the element (it is a required attribute).

Example
<form action="login" method="POST">
  Username: <input type="text" name="user_name">
  Password: <input type="password" name="user_password">
  Keygen Strength: <keygen name="login_form">
  <input type="submit" value="Login">
</form>

Browser support

Chrome
All
Edge
All
Firefox
1+
IE
-
Opera
3+
Safari
1.2+

Mobile browser support

Chrome
All
Firefox
4+
Opera
-
Safari
-
Basics
Introduction
Syntax
Editors
Basic Examples
Head Section
<!DOCTYPE>
Tags and Elements
Semantic Elements
Tags Reference
Attributes
Comments
Block and Inline Elements
Forms
Form Elements
Input
Responsive Web Design
Inline Scripts
Uniform Resource Locator
Redirect
XHTML
Geolocation
Drag and Drop
Local Storage
Web Workers
Server-Sent Events
Character Encoding
Text Formatting
Quotation and Citation Elements
Headings
Paragraphs
Links
Tables
Lists
Symbols
Space
Tab
Styles
Computer Code
Layout
Classes
Colors
Images
iframes
Audio Player
Video Player
YouTube Videos
Multimedia
Canvas
SVG
<!-- -->
<a>
<abbr>
<acronym> DEPRECATED
<address>
<applet> DEPRECATED
<article>
<aside>
<audio>
<b>
<base>
<basefont> DEPRECATED
<bdi>
<bdo>
<big> DEPRECATED
<blink> DEPRECATED
<blockquote>
<body>
<br>
<button>
<canvas>
<caption>
<center> DEPRECATED
<cite>
<code>
<col>
<colgroup>
<datalist>
<dd>
<del>
<details>
<dfn>
<dialog>
<dir> DEPRECATED
<div>
<dl>
<dt>
<em>
<embed>
<fieldset>
<figcaption>
<figure>
<font> DEPRECATED
<footer>
<form>
<frame> DEPRECATED
<frameset> DEPRECATED
<h1> – <h6>
<head>
<header>
<hr>
<html>
<i>
<iframe>
<img>
<input>
<ins>
<kbd>
<keygen> DEPRECATED
<label>
<legend>
<li>
<link>
<main>
<map>
<mark>
<menu>
<menuitem> DEPRECATED
<meta>
<meter>
<nav>
<noframes> DEPRECATED
<noscript>
<object>
<ol>
<optgroup>
<option>
<output>
<p>
<param>
<pre>
<progress>
<q>
<rp>
<rt>
<ruby>
<s>
<samp>
<script>
<section>
<select>
<small>
<source>
<span>
<strike> DEPRECATED
<strong>
<style>
<sub>
<summary>
<sup>
<table>
<tbody>
<td>
<tfoot>
<th>
<thead>
<time>
<title>
<tr>
<track>
<tt> DEPRECATED
<u>
<ul>
<var>
<video>
<wbr>