# [Crypto] Random - [[Crypto] Random](https://bamboofox.cs.nctu.edu.tw/courses/4/challenges/83) --- 題目:  1. 首先看到第19行註解 就能猜到密碼是後面那一串 2. 第四行的意思是 => 開啟flag檔案並以唯讀方式,並從中讀字串從右到左  ▲ 以上圖片為[:-1]切片意思 3. 但是沒有叫做flag的檔案讓我們開啟,因此可以直接註解掉 4. 而第6行的意思為: 該seed()方法用於初始化隨機數生成器 -> 代表重新啟動後的第一個數字都會一樣為某數 比如: 目前random.seed("random")代表之後第一個隨機數一定是0.900442388002831 5. 原本是要把flag裡面的字做處理,但現在我們是要用我們下面的密碼來處理,因此新增一個變數"answer"存入密碼來代替flag  6. 執行後會發現answer還是很奇怪 -> 看起來不是正確答案  7. 但是只有中間的for裡面是處理密碼,因此試著改變裡面的排列 --- ``` hint: 在第四點其實已經有告知random.seed的結果已經是一樣 ``` * 提示就可以發現結果是一樣的就可以直接去看random.randrange的內容跟轉換結果就夠了 例如: 原本該輸出的前面四個分別是FLAG,但如果輸出是XPYA,就直接看是哪出問題就好。 但其實到後面就可以發現只要將random.randrange改成負的就好了因為其它計算只是在做ascii轉0~25。只要將random.randrange改成減號答案就得出了 備註: 發現PY2和PY3可能得出的答案會不同
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up