代码之家  ›  专栏  ›  技术社区  ›  Alan

为面试对代码样本执行损坏控制?

  •  3
  • Alan  · 技术社区  · 14 年前

    在为一家公司面试时,我被要求提交一些突出我“最佳”工作的代码示例。我收到了一些关于特定代码示例的问题,其中一个暗示了一个bug。

    代码示例是一个使用aes加密不透明blob的wcf web服务。服务使用blob来标识特定服务请求的所有资源。错误是.NET RijndaelManaged类与CBC模式一起使用,但未正确设置IV。RijndaelManaged类将在类实例化期间自动生成适当的IV,在代码示例中,这在第一次使用加密期间发生,并在ASP.NET应用程序的生命周期内持续。由于ASP.NET应用程序可以因各种原因重新启动,因此,由于在应用程序启动期间生成的新的IV值(bug),这些不透明的blob可能会在从一个服务调用到下一个服务调用时“失效”。

    问题本身是“IV在哪里设置用于解密?”

    我的回答是承认这是一个错误;但因为他们要求我做“最好的”工作, 我是不是因为提交了一个带有错误的样本而处于这个职位?还有什么我能说的吗?

    我犹豫着概述一下情况,因为我不想让自己看起来像是在找借口,但加密代码在我们的服务处于pre-alpha时被关闭了,在我们投入生产之前,这个项目就被取消了。

    2 回复  |  直到 12 年前
        1
  •  7
  •   VirtuosiMedia    14 年前

    每个人都写错误。作为一名程序员,你的部分工作就是如何处理这些错误。我会尝试概述情况,修复错误,然后像在工作中那样重新提交代码。之后,这取决于公司以及他们如何做出招聘决定。然而,如果是我,而你表现出了主动性,并通过跟踪和修复缺陷承担了责任,我不知道这是否会破坏交易。事实上,它可以把消极变为积极。

        2
  •  3
  •   jdmichal    14 年前

    我基本上只会说清楚你在这里说的话。说明你对bug的理解,为什么它是一个bug,它的影响是什么,它的解决方案是重新证明你作为程序员能力的最好方法。