首页 > 其他 > 详细

2020年所遇到的面试题

时间:2020-06-30 20:51:57      阅读:49      评论:0      收藏:0      [点我收藏+]

1. https的加密算法

答:①对称加密算法(快)、非对称加密算法(慢)

  ②数字签名(算法提取摘要 加密) (防止内容被篡改)

  ③数字证书(服务器提供信息给CA生成数字证书、浏览器使用CA的公钥去验证数字证书)(解决公钥的信任危机)

  ④浏览器生成一个随机数(对称加密的密钥)发送给服务器,今后使用这个对称密钥加密通信

  完整过程:

step1: “客户”向服务端发送一个通信请求

“客户”->“服务器”:你好  

step2: “服务器”向客户发送自己的数字证书。证书中有一个公钥用来加密信息,私钥由“服务器”持有

“服务器”->“客户”:你好,我是服务器,这里是我的数字证书  

step3: “客户”收到“服务器”的证书后,它会去验证这个数字证书到底是不是“服务器”的,数字证书有没有什么问题,数字证书如果检查没有问题,就说明数字证书中的公钥确实是“服务器”的。检查数字证书后,“客户”会发送一个随机的字符串给“服务器”用私钥去加密,服务器把加密的结果返回给“客户”,“客户”用公钥解密这个返回结果,如果解密结果与之前生成的随机字符串一致,那说明对方确实是私钥的持有者,或者说对方确实是“服务器”。

“客户”->“服务器”:向我证明你就是服务器,这是一个随机字符串     //前面的例子中为了方便解释,用的是“你好”等内容,实际情况下一般是随机生成的一个字符串。

“服务器”->“客户”:{一个随机字符串}[私钥|RSA] 

step4: 验证“服务器”的身份后,“客户”生成一个对称加密算法和密钥,用于后面的通信的加密和解密。这个对称加密算法和密钥,“客户”会用公钥加密后发送给“服务器”,别人截获了也没用,因为只有“服务器”手中有可以解密的私钥。这样,后面“服务器”和“客户”就都可以用对称加密算法来加密和解密通信内容了。

“服务器”->“客户”:{OK,已经收到你发来的对称加密算法和密钥!有什么可以帮到你的?}[密钥|对称加密算法]

“客户”->“服务器”:{我的帐号是aaa,密码是123,把我的余额的信息发给我看看}[密钥|对称加密算法]

“服务器”->“客户”:{你好,你的余额是100元}[密钥|对称加密算法]

 

2.property和attribute的区别

  • property是DOM中的属性,是JavaScript里的对象;(比如childNodes、children等)
  • attribute是HTML标签上的特性,它的值只能够是字符串;(比如id、class、title等)

attribute是property的子集, 但是自定义的attribute是不会存在于property中

设置和查看attribute       dom.setAttribute(‘id‘,‘myId‘)   dom.getAttribute(‘id‘)

设置和查看property       dom.className = ‘myClass‘

 

2020年所遇到的面试题

原文:https://www.cnblogs.com/home-zhuxing/p/13215515.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!