HTML5からの新要素にkeygen要素があります。keygen要素は、フォーム送信時にキーを発行して暗号化する要素です。
今回は、このkeygen要素についてまとめたいと思います。
HTML 【フォーム】1 ~ フォームの概要とform要素の属性一覧
HTML 【フォーム】2 ~ form要素の使い方
HTML 【フォーム】3 ~ form要素で使う主な属性の使い方
HTML 【フォーム】4 ~ fieldset要素とlegend要素
HTML 【フォーム】5 ~ input要素(1)フォーム部品一覧
HTML 【フォーム】5 ~ input要素(2)テキスト入力部品
HTML 【フォーム】5 ~ input要素(3)ラジオボタンとチェックボックス
HTML 【フォーム】5 ~ input要素(4)日時の入力部品
HTML 【フォーム】5 ~ input要素(5)数値の入力部品
HTML 【フォーム】5 ~ input要素(6)レンジ(range)の入力部品
HTML 【フォーム】5 ~ input要素(7)色(color)の入力部品
HTML 【フォーム】5 ~ input要素(8)ファイル送信のための部品
HTML 【フォーム】5 ~ input要素(9)隠し情報(hidden)
HTML 【フォーム】5 ~ input要素(10)ボタン(submit、reset、button)
HTML 【フォーム】5 ~ input要素(11)画像ボタン(image)
HTML 【フォーム】6 ~ button要素で作るボタン
HTML 【フォーム】7 ~ ボタンの作り方比較とJavaScriptでアラート表示
HTML 【フォーム】8 ~ セレクトリスト
HTML 【フォーム】9 ~ 入力候補(datalist)
HTML 【フォーム】10 ~ テキストエリア(textarea)
HTML 【フォーム】11 ~ ラベル(label)
HTML 【フォーム】12 ~ 出力欄(output)
HTML 【フォーム】13 ~ 数量や割合のゲージ(meter)
HTML 【フォーム】14 ~ 進捗状況を示すプログレスバー(progress)
HTML 【フォーム】15 ~ キーを発行して暗号化(keygen)( 本ページ )
HTML 【フォーム】16 ~ CSSでフォームを整える
なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。
keygenは、key generatorの略で、キー発生器のような意味です。キージェネとよばれています。
keygen要素は、データを送信する際に、キーを発行して暗号化する要素です。
keygen要素を使用すると、秘密キーと公開キーがペアで発行されます。
秘密キーはローカル環境に保存され、公開キーはサーバに送信されます。
このような仕組みによって、クライアント認証がより確実になり、情報送信の安全性も高まります。
keygen要素は、空要素で終了タグがありません。
keygen要素で作られた部品は、このように表示されます。
keygen要素の属性 | name属性 | keygen要素に固有の名前を付ける |
---|---|---|
keytype属性 | 生成されるキーの種類 デフォルト値はrsa |
|
challenge属性 | 公開キーと一緒に送る文字列 | |
disabled属性 | 使用不可の状態にする | |
autofocus属性 | ロード後、自動的にフォーカス(選択された状態に)する | |
form属性 | 親のform要素のid名を呼び出して関連付ける | |
グローバル属性 | id属性、class属性、title属性、style属性など |
keygen要素を使用すると、秘密キーと公開キーがペアで生成されます。
秘密キーはローカルに保存され、公開キーはデータ送信時にサーバに送信されます。
入力データを暗号化するための部品は、次のように表示されます。
上の表示に対するhtmlコードは、以下の通りです。
<form>
ID:<input name="test_id">
暗号化:<keygen name="test_key">
<input type="submit">
</form>
keytype属性で、生成されるキー(暗号化)の種類を指定できますが、HTML5の仕様ではブラウザがサポートするべき暗号方式が定まっておらず、デフォルト値がrsaのため、今のところrsaのみ指定可能と考えられます(よって、他に指定可能なキーの種類ができるまでは、指定してもしなくても同じです)。
RSAとは、公開キーの暗号方式の標準として普及している暗号アルゴリズムの名称です。
RSAでは、巨大な数の素因数分解が困難なことを利用してデータを暗号化します。
name=”暗号化部品の名前(任意のテキスト)” |
---|
name属性の値と公開キーがセットで送信されるので、必ず名前を付けます。
<keygen name=”sample”> |
keytype=”rsa” |
公開キーの暗号方式の種類を指定しますが、今のところrsa(RSA暗号方式)しか指定できません。 RSAとは、公開キーの暗号方式の標準として普及している暗号アルゴリズムの名称です。RとSとAは、開発者3名(R.L.Rivest、A.Shamir、L.Adleman)の頭文字のようです。 属性を省略するとデフォルト値のrsaになるので、他に指定できる値ができるまでは指定する必要がない属性です。 <keygen name=”sample” keytype=”rsa”> |
challenge=”公開キーと一緒に送る文字列(任意のテキスト)” |
公開キーと一緒に送る文字列を指定します。
<keygen name=”sample” challenge=”challenge_txt”> |
disabled または disabled=”” または disabled=”disabled” |
使用不可の状態にする指定です。この属性を指定すると、暗号化レベルをセレクトできない状態になります。
<keygen name=”sample” disabled> |
autofocus または autofocus=”” または autofocus=”autofocus” |
HTML文書のロード後、この属性の指定がある要素が自動的にフォーカスされます。 このような性質上、1つのHTML文書に1つの要素のみautofocus属性の指定ができます。 <keygen name=”sample” autofocus> |
form=”form要素のID” |
form属性で、form要素に付けたid名を呼び出して関連付けを行います。 そうすることによって、keygen要素がform要素の外に出ていても問題なく機能します。 <form method=”post” action=”sample.cgi” id=”f_id”> |
この他に、id属性、class属性、title属性、style属性などのグローバル属性も使えます。
INTERNOUS,inc. All rights reserved.