位置:首页 > 软件操作教程 > 编程开发 > HTML > 问题详情

HTML5 新的表单元素 2.keygen元素

提问人:刘团圆发布时间:2020-11-16

<keygen>标签用于表单对密钥的生成。当提交表单时,私钥存储在本地,公钥发送到服务器上。

    代码实例如下:

    <form action="demo_keygen.asp" method="get">

        Username: 〈input type="text" name="usr_name" />

        Encryption: <keygen name="security" />

        <input type="submit" />

    </form〉

    在这里,很多人可能都会好奇,这个keygen标签到底是干什么的? 一般会在什么样的场景下去使用它呢?下面就为大家解除疑惑。

    首先<keygen>标签会生成一个公钥和私钥,私钥会存放在用户本地,而公钥则会发送到服务器上。那么<keygen>标签生成的公钥/私钥是用来做什么的?在看到公钥/私钥的时候,应该就会想到非对称加密。没错,<keygen>标签在这里起到的作用也是一样的。

    <keygen>标签所期望的是在收到SPKAC(SignedPublicKeyAndChallenge)排列后,服务器会生成一个客户端证书(Client Certificate ),然后返回到浏览器,让用户去下载保存到本地。在需要验证的时候,使用本地存储的私钥和证书后,通过TLS/SSL安全传输协议到服务端做验证。

    以下是使用<keygen>标签的益处:

    •可以提高验证时的安金性。

    •如果是作为客户端证书来使用:可以提高对M丨TM攻击的防御力度。

    •keygen标签是跨越浏览器实现的,实现起来非常容易。

    •可以不用考虑操作系统的管理员权限问题。

    例如,操作系统对不同用户设置了不同的浏览器权限,IE或者其他浏览器可以设置禁用key的生成,在这种情况下,可以通过keygen标签来生成和使用没有误差的客户端证书。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部