2010-08-01 38 views
3

在面試公司時,我被要求提交幾個代碼樣本,強調我的「最佳」工作。我回復了幾個有關特定代碼示例的問題,其中一個提到了一個錯誤。對面試代碼樣本執行損害控制?

代碼示例是一個WCF Web服務,它使用AES來加密一個不透明的blob。該服務使用blob來標識特定服務請求的所有資源。錯誤在於.NET RijndaelManaged類與CBC模式一起使用,沒有正確設置IV。 RijndaelManaged類將在類實例化過程中自動生成適當的IV,在代碼示例中該類實例化在第一次使用加密期間發生,並且在ASP .NET應用程序的生命週期中持續存在。由於ASP.NET應用程序可能由於各種原因而重新啓動,因爲App啓動期間生成的新IV值(錯誤),這些不透明Blob可能會從一次服務調用到下一次服務調用「失效」。

這個問題本身就是「IV在哪裏解密?」

我的迴應已經承認這是一個錯誤;但是因爲他們要求我的「最佳」工作,我是否因爲提交了一個帶有錯誤的樣本而擔任這個職務的SOL??我還能說更多嗎?

我很猶豫要概述這種情況,因爲我不想讓自己找藉口,但是當我們的服務處於alpha版本前,加密代碼就被關閉了,並且項目被殺死了在我們進入生產之前。

回答

7

每個人都會寫入錯誤。作爲程序員的一部分工作就是如何處理這些錯誤。我會嘗試概述情況,修正錯誤並重新提交代碼,就像在工作中一樣。之後,這取決於公司以及他們如何作出僱用決定。但是,如果是我,並且您通過跟蹤和修復錯誤而表現出主動性和承擔責任,我不知道這是否會成爲交易破壞者。事實上,它可能會將消極變爲積極。

3

我基本上只是陳述你在這裏所說的。說明你對錯誤的理解,爲什麼它是一個錯誤,它的影響是什麼,它的解決方案是重申你作爲程序員的能力的最好方法。