Тег <keygen> отвечает за генерацию пары ключей (открытый и закрытый), которые используются для шифрования и расшифровки данных форм, а также для создания и проверки цифровой подписи. Открытый ключ отправляется на сервер вместе с данными формы, а закрытый сохраняется на локальном устройстве пользователя.
Тег также используется для создания и проверки цифровой подписи.
Элемент <keygen> дает пользователю возможность выбирать из ряда вариантов размера ключа, а также выбирать, где генерировать ключ, например, на смарт-карте или в программном обеспечении и хранится на диске. Но это возможно только в том случае, если браузер пользователя поддерживает криптографические аппаратные средства.
Синтаксис
Тег <keygen> помещается в контейнер <form>. Закрывающий тег не обязателен.
Пример
<!DOCTYPE html>
<html>
<head>
<title>Заголовок документа</title>
</head>
<body>
<form action="demo_keygen.asp" method="get">
<keygen name="rsaPublicKey" keytype="RSA">
Имя пользователя: <input type="text" name="usr_name">
<input type="submit">
</form>
</body>
</html>
Результат
Поддержка опций шифрования в браузерах
- Опции в Chrome и Opera на движке: 2048 (высокая степень), 1024 (средняя степень). В браузере Opera на движке Presto доступны опции 1024, 1280, 1536, 1792, 2048, 2304, 2560, 2816, 3072, 3328, 3584, 3840 и 4096.
- Опции в Safari 5: 2048 (высокая степень), 1024 (средняя степень), 512 (низкая степень)
- Опции в Firefox и Android: высокая степень, средняя степень.
- iOS утверждает, что поддерживает его, но создает неработающий пустой выпадающий список.
Атрибуты
Атрибут | Значение | Описание |
---|---|---|
autofocus | autofocus | Определяет, что при загрузке страницы элемент должен автоматически получить фокус. Не поддерживается в IE и Firefox. |
challenge | challenge | Определяет строку вызова, которая передается вместе с открытым ключом. Значением атрибута является любая текстовая строка. Если атрибут не указан, то по умолчанию используется пустая строка. |
disabled | disabled | Указывает, что элемент <keygen> должен быть отключен. |
form | form_id | Указывает идентификатор формы или форм, к которой принадлежит элемент <keygen>. Не поддерживается в IE. |
keytype | Определяет алгоритм шифрования ключа. | |
rsa | Пользователь может выбрать между высокой и средней степенью защиты (значение по умолчанию). | |
dsa | Пользователь может выбрать размера ключа. | |
ec | Пользователь может выбрать между высокой и средней степенью защиты. | |
name | name | Задает имя элемента <keygen>. |
Тег <keygen> также поддерживает глобальные атрибуты и атрибуты событий.
Поддержка браузера
1+ | 1+ | 1.2+ | 3+ |