今天應聘遇到的開卷考題,哪位能答上,我被OUT出來了,求解



題目是:

DZ論壇的安全問題答案的密文是:582a4019,反向解譯明文答案。


加密規則是:


例子為1ff2f592

加密的算法仍是MD5,加密的過程是,

若你安全提問選如第一個"母親的名字",
那安全提問的questionid就為1
questionid由上到下排列,其中共有7個最高,所以questionid的值為1-7,由此類推
把questionid(1-7中任選一個阿拉伯數字)加密為32位的md5 (加密的questionid是數字..可察看登錄的原始碼)
然後把結果直接加在回答答案的後面 再用md5加密
最後取其結果的第17位到第24位這8個數字 便是最後的加密結果

例子:
        以(安全問題是"第二個問題"、答案是123456)為例
       把2加密後為32位的   c81e728d9d4c2f636f067f89cc14862c
       然後直接寫在回答答案的後面為 123456c81e728d9d4c2f636f067f89cc14862c
       以上再加密為32位的    46ec6c2c278daf231ff2f5929f27f605
       取以上的第17位到第24位這8個數字 便是 1ff2f592
        1ff2f592便是安全問題的密文

14 个解决方案

#1


你這是應聘啥職位喲---要這樣考試????


你的提目我都沒有看完

#2


還有 開券的時候,為啥不發貼啊
被OUT了才來發,
解決問題的激情都沒有了。

#3


首先明確一個問題,MD5是不可逆的,除非暴力,字典,還有就是用戶提供

這里題目給出一個KEY是questionid 1-7,這個如果要我們去求是沒問題的,難度在於用戶的答案是[0-9,a-z,A-Z,中文]

假設用戶的明文是 ”出題的這個人是個2B“,如果要你去破解, 你需要做 0-9 10位不重復的字典, 下面的也懶的說了, 

          是不是你沒記住題。

#4


MD5 是索引(摘要)不是加密,題目的描述本身就有問題
從 MD5 碼反求明文基本上是不可能的。即便你掌握了快速尋找碰撞的算法,也不能就此認定找到的就是原文
如果真的能“反向解譯明文”,那么這個“安全問題”就形同虛設了

我不認為出題者會犯如此低級的錯誤
我以為是樓主誤解題目的含義,真正的問題是“反向解譯明文答案
據此答案號就可取出保存的答案與用戶輸入的答案進行比較,以驗證真偽
把questionid(1-7中任選一個阿拉伯數字)加密為32位的md5

$答案 = array(1 => '', '123456', '', '', '', '', '');

$密文 = '1ff2f592';
for($i=1; $i<8; $i++) {
  $s = $答案[$i] . md5($i);
  if(substr(md5($s), 16, 8) == $密文)
    echo "答案號:$i 答案:{$答案[$i]}\n";
}

答案號:2 答案:123456


#5


是用提問作為 key加了一次密。

如果要解密,基本上是不可能的。 但你可以看discuz的加密解密函數, 那個函數是對php互聯網的一大 貢獻。

他那是有key作為加密解密的依據的。 用的是反碼+key計算。

discuz的加密解密函數。是解決康盛產品同步登錄的關鍵。

#6


誇張了吧....

引用 5 樓 fxs_2008 的回復:
但你可以看discuz的加密解密函數, 那個函數是對php互聯網的一大 貢獻。

#7


引用 6 樓 helloyou0 的回復:
誇張了吧....

引用 5 樓 fxs_2008 的回復:
但你可以看discuz的加密解密函數, 那個函數是對php互聯網的一大 貢獻。


不誇張!  它提供了一種方式或思路,你的密碼和驗證是可以存cookie的或可以發給任何人! 但解密必須要有key才行。 而且,這個加密解密過程計算量要少。 

至少,同步登錄時很有意義。 否則,你敢把密碼存在用戶端嗎?

就目前的密碼泄露門而言,那也是很的意義的。 即使你獲得了數據庫,但不知道解密的key. 一樣解不了密。

#8


引用 7 樓 fxs_2008 的回復:
引用 6 樓 helloyou0 的回復:

誇張了吧....

引用 5 樓 fxs_2008 的回復:
但你可以看discuz的加密解密函數, 那個函數是對php互聯網的一大 貢獻。


不誇張!  它提供了一種方式或思路,你的密碼和驗證是可以存cookie的或可以發給任何人! 但解密必須要有key才行。 而且,這個加密解密過程計算量要少。 

至少,同步登錄時很有意義。……
不對吧?他的密鑰是包含在密文中的,只需知道算法就能解密

#9


老大四樓講的是!

#10


這個公司是做網絡安全的,最近不是暴出了很多名文密碼,公司是想找這方面的人,首行得洞悉別人怎么做的,在做二次開發的時候才好規避。不好意思,讓各位老大見笑了,最后沒能答出來。反向解譯是高手們做的事情。。。。

#11


老大說了,這個是不能反譯的。 除了查字典。

但如是說是找解決方案。 可以看discuz的的加密函數。把key設的復雜一點(如聯連好幾種數據)。不知道key,即使知道算法,不能解密。

#12


引用 3 樓 cupdir 的回復:
首先明確一個問題,MD5是不可逆的,除非暴力,字典,還有就是用戶提供

這里題目給出一個KEY是questionid 1-7,這個如果要我們去求是沒問題的,難度在於用戶的答案是[0-9,a-z,A-Z,中文]

假設用戶的明文是 ”出題的這個人是個2B“,如果要你去破解, 你需要做 0-9 10位不重復的字典, 下面的也懶的說了, 

  是不是你沒記住題。

#13


這不就是簡單的驗證嗎?連算法都給你了,反向驗證下就行了,4樓大神已經給出了答案。

#14


該回復於2012-01-04 15:05:05被版主刪除

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com