[58] 暗号鍵を作ろう keygen要素(HTML5.2で削除されました)
最終更新日:2018年03月30日 (初回投稿日:2013年11月05日)
<keygen>要素は、2017年12月14日勧告の HTML 5.2 仕様書から、削除されました。(現在草案の HTML 5.3 にも<keygen>要素は載っていません)
まだ <keygen>要素を表示できるブラウザも残っていますが、使用できませんのでご注意ください。
以下、この記事は、大幅に内容を削って残しておきますが、使えない要素であることをご承知おきください。
<keygen>要素は、セキュリティ技術「公開鍵暗号方式 (Public key cryptosystem)」での公開鍵と秘密鍵のペアを生成するコントロールを表示する要素です。これもHTML5 からの新要素です。
「公開鍵暗号方式」って聞き慣れないコトバでしたが、調べてみると普段よく使ってるかも。
1つめの公開鍵で暗号化して、2つめの秘密鍵で復号化(元に戻す)をするんだって。
有料ソフトのシリアルナンバーとか、CDキーとか言われるアレですね。
送信時に公開キーはサーバに送信され、秘密キーはユーザのローカル環境に保存されるそうです。(もとは、Netscape の独自要素で、規格外だったのが HTML5 で復活したようです)
表示するブラウザでは、このようになっています。(2018年3月記)
HTML 5.1 2nd Edition | W3C Recommendation では 次のような注記がありました。
This feature is in the process of being removed from the Web platform. (This is a long process that takes many years.) Using the <keygen> element at this time is highly discouraged.
直訳:この機能はWeb標準から削除されています。(これは長い年月がかかる長期プロセスです)現時点での <keygen>要素の使用は お勧めしません。
というわけで今回は、今のところ <keygen>要素に どんな決まり事があるか だけまとめます。
使用する要素 | <keygen> (空要素。終了タグはありません) |
---|
<keygen> (一覧はこちら) |
name:<keygen>に固有の名前をつける |
---|---|
keytype:生成される鍵の種類(初期値はrsa) | |
challenge:公開鍵と一緒に送るチャレンジ文字列 | |
disabled:使用不可の状態にする | |
autofocus:ロード後、自動的にフォーカスする | |
form:親の<form>のID名を呼び出して関連づける | |
グローバル属性 |
「keygen」は「key」と「generator」を組み合わせで、generator(ジェネレーター)はこの場合は「生成プログラム」的な意味みたい。
キーゲンって読むのかと思ったら「キージェネ」。プログラマーには当たり前のコトだそうです。
<keygen>要素の設置時の決まり事
●サンプル
下記のサンプルは、動作確認のために このページに送信されるようになっています。
<keygen>要素が表示されているブラウザで、サンプルフォームに入力して送信ボタンを押し、ブラウザのアドレスバーを見てください。
このように、サイトのURLの直後に「?」で連結されてname=名前、その後「&」で連結されて、security= の後にダラダラ〜っと文字列。この長い文字列が公開鍵です。
<form>
<p>お名前: <input type="text" name="name"></p>
<p>暗号化: <keygen name="security"></p>
<input type="submit">
</form>
keytype属性はデフォルトが「rsa」で、今のところコレしか無く、書いても書かなくても同じ。
challenge属性で指定した文字列は「鍵とパッケージ化され送信」されるそうですが、具体的にどう送信されるのか不明…。ま、とにかくchallenge属性を指定したサンプルコードです。
<form>
<p>お名前: <input type="text" name="name"></p>
<p>暗号化: <keygen name="security" challenge="IA5STRING"></p>
<input type="submit">
</form>
<keygen>の属性一覧
- name="部品の名前(任意のテキスト)"
- name属性の値と公開鍵がセットで送信されるので、必ず名前を付けておこう。
<keygen name="security">
- keytype="rsa"
- 公開鍵暗号方式の種類。今のところRSA暗号方式しか指定できないようです。
RSAは開発者3名(R.L.Rivest、A.Shamir、L.Adleman)の頭文字だって。
属性を省略するとデフォルト値になるので、今のところこの属性を書いても書かなくても「rsa」です。(今のところ書く必要ない属性ですな)<keygen name="security" keytype="rsa">
- challenge="チャレンジ文字列(任意のテキスト)"
- 公開鍵と一緒に送る「チャレンジ文字列」を指定します。
<keygen name="security" challenge="example">
- disabled(または「disabled=""」「disabled="disabled"」 )
-
「使用不可」になります。暗号化レベルをセレクトできない状態です。
<keygen name="security" disabled>
- autofocus(または「autofocus=""」「autofocus="autofocus"」 ) new
- HTML文書のロード後すぐに、この属性のある要素が自動的にフォーカスされます。
● autofocus属性は、1つのHTML文書に1つだけ。(そりゃそうだ!)<keygen name="security" autofocus>
- form="<form>要素のID" new
- form属性で<form>要素につけたIDを呼び出して関連づけます。
これによって<button>要素が<form>要素の外に出ていても機能します。<form method="post" action="sample.cgi" id="ex1"> <p>お名前:<input type="text" name="name"></p> </form> <keygen name="security" form="ex1">
「form属性」については、
「[47] form要素でデータ送信可能なフォームである事を示そう」の「HTML5からの変更点」もご覧ください。 - このほかグローバル属性も使います
- 当然ながら、id, class, title, style などのグローバル属性も使えます。
グローバル属性については、「[39] 全要素に使える「HTML5グローバル属性」を見てみよう」をご覧ください。
次回予告
さて、フォーム関連の要素は、今回でひととおり終わりです。長かったっすね。
で、次回は、フォームに関する「属性」について、どの属性がどの要素に使えるか を一覧表にします。
HTML5からの新しいものも含めて、フォームには とにかく大量に属性があり、シッカリ把握しておきたいので、まとめます。
- 関連記事
-
- [63] インラインフレームで 他のHTMLファイルを組み込もう iframe要素
- [62] 外部コンテンツを組み込もう object要素・param要素
- [61] イメージマップ(リンク領域)を作ろう map要素・area要素
- (ちょっとメモ)属性の「引用符」や「値」の省略について
- (ちょっとメモ)HTML5 での 省略可能なタグについて
- [60] フォームを美しく整えよう(CSS使用)
- [59] フォームの属性 逆引き一覧 (どの属性がどの部品に使えるか)
- [58] 暗号鍵を作ろう keygen要素(HTML5.2で削除されました)
- [57] プログレスバー(進捗状況)を出そう progress要素
- [56] 数量や割合のゲージを表示しよう meter要素
- [55] 計算結果の出力欄を作ろう output要素
- [54] ラベルを付けて使いやすくしよう label要素
- [53] 文章 (複数行のテキスト) を入力してもらおう textarea要素
- [52] 入力候補のリストを作ろう datalist要素
- [51] セレクトメニューを作ろう(select・option・optgroup要素)
初心者にも使いやすい(と思う)レンタルサーバー
「初心者ですがレンタルサーバーはどこがいい?」というご質問をよくいただきます。
自由にファイルをアップロードできる自分のサーバがあると便利ですよね。ローカル環境じゃなくサーバ上で試してみたい時がありますからね。
私が使っているのは、
スターサーバーや ロリポップ!
です。どちらも管理画面がわかりやすく、マニュアルも充実していて、料金も安い。どちらもライトプラン以上で WordPress が使えます。
初心者が始めやすいサーバだと思います。
ちょっと料金は高いけど、さくらのレンタルサーバや、エックスサーバー
は、やはり老舗なのでおすすめです。
両方とも高スペックでコスパが良く、老舗でユーザーが多いので、質問する場がたくさんあります。初心者だけど仕事でサーバが欲しい場合は、安心なのではないかと思います。
スポンサーリンク