背景

专科大三在读,目前在某 toB 公司服务岗位偏研究,xCPC 打铁,CTF 奖项若干

昨天,也就是 2024年1月2日 中午13:00,在目前实习的公司找了个会议室线上面试

我提前三分钟进会议,对方在 12:59 左右提出开摄像头,由于macOS权限问题,得重启应用才可以开启权限,一点点小失误

自我介绍

我以大学后的生活为时间线讲给面试官

算法与工程

RSA

描述了秘钥选取,包含明文的一些边界条件,密钥生成与加密解密过程

碰撞检测

纯用想像的三维模型讲了个朴素方式,对方表示这种太基础了

筛素数法

筛法中埃氏筛法忘了,于是回答了下跟欧拉筛的区别:欧拉筛优化了埃氏筛中重复划掉合数的过程,达到线性复杂度

用JS还是TS,有没有系统学过TS

相对用 JS 多一些,TS 除了在一些模板中,几乎没用过,对方表示让我系统学习下 TypeScript

函数式,多线程和线程安全

可能还问了面对对象编程,不过都没答上来,我就提了一嘴线程竞争(正确叫法是条件竞争),有点后悔没学前几个月的热门项目"线程池"

Dynamic Programming

我选择用爬楼梯作为题目背景讲了下 dp 的思路,对方表示这道题有些太基础了,笔者对 dp 造诣太浅,该加强了

椭圆曲线密码学

简述了 ECC 的加密流程,提到了群论和快速幂,怕被问到解决 DLP 的算法细节都不敢提 bsgs (因为作为调包侠,甚至还不算"侠",已经忘记算法实现方式了)

实现一个加密的在线聊天平台

描述了即时聊天项目需要的密码学知识与设计思路,使用了密钥交换和对称密码学以及哈希函数

面试官评价:实现了一个简单的 TLS


杂谈

对以后的规划,以及学习密码学的契机

巴拉巴拉,这个环节这位面试官很尊重面试者,不过提到了可能读研,在面试中是个 DeBuff

反问阶段

如果入职要做的项目

实现一个类似 xxx 的项目 🤐,技术栈 React


至此面试结束

用时 33min33s


面试结束后的一些感想

主要是说可以再约一个时间互相交流,于是想着过不了就算了,我继续学再继续约。( 于次日上午收到了感谢信,发现是我理解错了,如果再约,只是交流不是面试,不过这样也不错了,能跟大佬唠唠也挺好 )

对方表示算法还不错,但工程欠缺。这段时间我就去看项目和工程思想了(希望能和未来的考试平衡好时间)

对于前端开发岗来说,面试官能问我密码算法真的感天动地,后面讲一个跟密码学结合的 IM 项目时,对方表示实现了一个简单的 TLS (看得出来面试官有所了解)

对方还提了嘴自动机(还好没问,不然答不上来个所以然)

之前也玩过 CTF,后来没做安全,写下感想:

你面的目标是前端岗位,但从面试记录的视角,给我比较明显的感觉是,当前你所掌握的知识体系相对不太匹配,所以侧重探你在自我研究学习的动力和深度。有研究学习的动力,但知识体系和方向的视角离干前端的活还有些差距,最关键的写 JS / TS 方面的经验没有太多的积累。结合当前经济形势,就一个公司而言可能承受不了一个相对长的培养和回报的周期,且不一定坚定走前端路线的个人技术方向。

所以最好系统性学习一下(可参考 roadmap.sh),React 和 Vue 及其生态多少得有些了解(现在这个领域前人积累的知识体系,已经非常庞杂了,不是简单了解 HTML / CSS / JS 就足够上手)。Web App 开发能用上 TLS 的地方,可能只是配一下抓包代理工具的证书吧。

专科大三在读,好像确实有点厉害哟。我考一道我最近出的考试题,100分中占了10分,是一道问答题:请说明为什么存在量子计算机则RSA算法就不安全?哈哈,虽然没什么技术含量,不过,作为概念题感觉还是有点意思。希望你 @LOV2 能回答得对。

概念很重要。DP的知识点应该是CS的入门,而ECC则是高年级同学的学习点,而且大部分我的学生都不愿意学的知识点。所以我不知道你的面试官会怎么看待一个懂得ECC,但是对DP理解得还不透的同学。如果我,我大概率会任务,嗯,他的ECC也就是一点皮毛而已 :-D

  • LOV2 回复了此帖

    Bintou 因为有 Shor 算法的存在,印象中需要4000个量子位就可以攻破 rsa4096,不过印象中不是秒出结果的,只是让分解来到了多项式时间(不确定)?ECC的话只是加密解密的话能理解,进阶论文题需要慢慢按照论文构造,这块之前还做过一期公开分享。

      LOV2 多项式时间(不确定)????还是一个概念问题。

      综合鉴定,我认为你的学习不够系统,概念不够清晰。有不错的进取心,能主动学习,密码学上有一定基础,这是优势。建议在一些基础课程上下功夫。毕竟才大三,往后的日子还长。

      最后还是要是说,你蛮厉害的!

        好奇怪啊,语言和框架真的重要吗?我认为你了解 web 和浏览器原理,在 web 方向的安全领域有一定经验就可以了。什么 react 和 ts 不能用到再学吗?如果做账户安全认证 sdk 又要 wasm 又要混淆的,那他还得去招会写虚拟机的呗?感觉公司也有点问题。当然你自己的基础该补还是得补

        • LOV2 回复了此帖

          hsxfjames 这家公司急招能立即写代码的,至少工资挺可观,同时是做前端开发不是安全开发,所以也能理解,我正在补基础。

          嘶,你的前端面试题比我前段时间的面试难度高好多,虽然我都没咋进面🥺

          • LOV2 回复了此帖

            反转了,周一 HR 联系我,问还有意向吗,我说有,对方就给布置了一个作业,今早提交后,中午收到面试通知,约了周五第二轮技术面!

            • LOV2 回复了此帖

              lantern 这篇经验几乎没什么前端的东西,面试官应该就是觉得项目上没啥可问,就问了问算法什么的

              5 天 后

              LOV2 最新消息:挂了,二面问二叉树我说忘了(实际上前几天还在看莫卡尔树),问了中位数的查找,把中位数的定义都搞错了

              © 2018-2025 0xFFFF