当访问 HireVue 为面试提供的面试邀请链接时,你会被引导到一个条款页面,在开始录制并计时的面试过程之前,你需要先同意这些条款。这个初始 HTTP 响应中包含了面试过程中会被问到的面试问题,这些问题使用栅栏密码(rail fence cipher)进行编码。这种编码很容易被解密,因此在实际开始面试之前就能获得所有面试问题。如果你不同意条款,面试就不会开始,所以你可以随意反复访问该链接然后离开,直到你同意开始面试为止。HireVue 的客户并不期望在面试开始前就知晓面试问题,虽然他们试图用栅栏密码来隐藏这些问题,但这只是一种较弱的加密形式。
你还可以从该 HTTP 响应中以明文形式获取其他信息,例如问题数量、每个问题的最大作答时间(秒)、你可用的作答次数、录制开始前的准备时间等等。
初始响应来自:hiring-org-subdomain.hirevue.com/interviews/interview-ID。你需要找到名为 questions 的部分,其中包含 JSON 格式的加密问题。问题位于 text 字段中。它看起来就像下面的 HTTP 响应片段。
...
"questions": [
{
"id": 123456,
"type": "video",
"text": "hsi htteqetoswl oklk hnecytduigari ec ihr Z25Ti swa h usin illo iewe nrpe sn alfnecpe.(..)",
"maxDuration": 180,
"isRatable": true,
"minDuration": 10,
"prepTimeSeconds": 120,
"disableCopyPaste": false,
"secondsElapsed": 0,
"isAnswered": false,
"answer": null,
"attemptsAvailable": 3
},
{
"id": 654321,
"type": "video",
"text": "hsi htteqetoswl oklk hnecytduigari ec ihr digsm xr ethr o hsoe(..)Ti swa h usin illo iewe nrpe sn alfnecpe.Adn oeetatx eefrti n G19",
"maxDuration": 180,
"isRatable": true,
"minDuration": 10,
"prepTimeSeconds": 120,
"disableCopyPaste": false,
"secondsElapsed": 0,
"isAnswered": false,
...
要解密包含问题的 text 部分,你可以使用 https://www.boxentriq.com/code-breaking/rail-fence-cipher。你需要将 Rails 设置为 2,Offset 设置为 0,然后粘贴文本并解密。注意,不要包含开头的 "text": 部分或结尾的逗号(这些都是 JSON 格式的一部分),并且你可能需要删除末尾的一些字符,例如上面示例中的结束引号。