先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注Android)
正文
开头
年前面试了一些公司,目前已经拿到了阿里跟头条的 offer。去年我也出去找工作了,面试五家拿到了四家公司的 offer。所以在面试方面我应该可以提供一些愚见吧。本篇会讲解一些常见题目以及一些答题技巧。
其实面试的过程也是对自己知识的一个梳理过程,工作中我们学到的东西都是碎片化的,那么面试前我们就需要把这些碎片化的知识梳理出来,形成自己的知识体系。每个人都应该建立一套自己的知识网络,而这个知识网络就是你的资本,让你的资本不断扩大你才会变的更有价值。
背景
我们知道,http 通信存在以下问题:
- 通信使用明文可能会被窃听
- 不验证通信方的身份可能遭遇伪装
- 无法证明报文的完整型,可能已遭篡改
使用 https 可以解决数据安全问题,但是你真的理解 https 吗?
当面试官连续对你发出灵魂追问的时候,你能对答如流吗
- 什么是 https,为什么需要 https
- https 的连接过程
- https 的加密方式是怎样的,对称加密和非对称加密,为什么要这样设计?内容传输为什么要使用对称机密
- https 是绝对安全的吗
- https 可以抓包吗
如果你能对答自如,恭喜你,https 你已经掌握得差不多了,足够应付面试了。
什么是 https
简单来说, https 是 http + ssl,对 http 通信内容进行加密,是HTTP的安全版,是使用TLS/SSL加密的HTTP协议
Https的作用:
- 内容加密 建立一个信息安全通道,来保证数据传输的安全;
- 身份认证 确认网站的真实性
- 数据完整性 防止内容被第三方冒充或者篡改
什么是SSL
SSL 由 Netscape 公司于1994年创建,它旨在通过Web创建安全的Internet通信。它是一种标准协议,用于加密浏览器和服务器之间的通信。它允许通过Internet安全轻松地传输账号密码、银行卡、手机号等私密信息。
SSL证书就是遵守SSL协议,由受信任的CA机构颁发的数字证书。
SSL/TLS的工作原理:
需要理解SSL/TLS的工作原理,我们需要掌握加密算法。加密算法有两种:对称加密和非对称加密:
对称加密:通信双方使用相同的密钥进行加密。特点是加密速度快,但是缺点是需要保护好密钥,如果密钥泄露的话,那么加密就会被别人pojie。常见的对称加密有AES,DES算法。
非对称加密:它需要生成两个密钥:公钥(Public Key)和私钥(Private Key)。
公钥顾名思义是公开的,任何人都可以获得,而私钥是私人保管的。相信大多程序员已经对这种算法很熟悉了:我们提交代码到github的时候,就可以使用SSH key:在本地生成私钥和公钥,私钥放在本地.ssh目录中,公钥放在github网站上,这样每次提交代码,不用麻烦的输入用户名和密码了,github会根据网站上存储的公钥来识别我们的身份。
公钥负责加密,私钥负责解密;或者,私钥负责加密,公钥负责解密。这种加密算法安全性更高,但是计算量相比对称加密大很多,加密和解密都很慢。常见的非对称算法有RSA。
https 的连接过程
https 的连接过程大概分为两个阶段,证书验证阶段和数据传输阶段
证书验证阶段
大概分为三个步骤
- 浏览器发起请求
- 服务器接收到请求之后,会返回证书,包括公钥
- 浏览器接收到证书之后,会检验证书是否合法,不合法的话,会弹出告警提示(怎样验证合法,下文会详细解析,这里先忽略)
数据传输阶段
证书验证合法之后
- 浏览器会生成一个随机数,
- 使用公钥进行加密,发送给服务端
- 服务器收到浏览器发来的值,使用私钥进行解密
- 解析成功之后,使用对称加密算法进行加密,传输给客户端
之后双方通信就使用第一步生成的随机数进行加密通信。
https 的加密方式是怎样的,对称加密和非对称加密,为什么要这样设计
从上面我们可以知道,https 加密是采用对称加密和非对称机密一起结合的。
在证书验证阶段,使用非对称加密。 在数据传输阶段,使用对称机密。
这样设计有一个好处,能最大程度得兼顾安全效率。
在证书验证阶段,使用非对称加密,需要公钥和私钥,假如浏览器的公钥泄漏了,我们还是能够确保随机数的安全,因为加密的数据只有用私钥才能解密。这样能最大程度确保随机数的安全。
在内容传输阶段,使用对称机密,可以大大提高加解密的效率。
内容传输为什么要使用对称机密
- 对称加密效率比较高
- 一对公私钥只能实现单向的加解密。只有服务端保存了私钥。如果使用非对称机密,相当于客户端必须有自己的私钥,这样设计的话,每个客户端都有自己的私钥,这很明显是不合理的,因为私钥是需要申请的。
https 是绝对安全的吗
不是绝对安全的,可以通过中间人攻击。
什么是中间人攻击
中间人攻击是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。
HTTPS 使用了 SSL 加密协议,是一种非常安全的机制,目前并没有方法直接对这个协议进行攻击,一般都是在建立 SSL 连接时,拦截客户端的请求,利用中间人获取到 CA证书、非对称加密的公钥、对称加密的密钥;有了这些条件,就可以对请求和响应进行拦截和篡改。
最后看一下学习需要的所有知识点的思维导图。在刚刚那份学习笔记里包含了下面知识点所有内容!文章里已经展示了部分!如果你正愁这块不知道如何学习或者想提升学习这块知识的学习效率,那么这份学习笔记绝对是你的秘密武器!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)**
[外链图片转存中…(img-ng5UhCv1-1713010753494)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!