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

Encryption 对面试的代码样本执行损坏控制?,encryption,Encryption,在为一家公司面试时,我被要求提交几个代码示例,突出我的“最佳”工作。有人问了我几个关于特定代码示例的问题,其中一个提到了一个bug 代码示例是一个WCF Web服务,它使用AES对不透明blob进行加密。服务使用blob来标识特定服务请求的所有资源。错误在于.NET RijndaelManaged类与CBC模式一起使用,没有正确设置IV。RijndaelManaged类将在类实例化期间自动生成适当的IV,在代码示例中,该类在第一次使用加密期间发生,并在ASP.NET应用程序的生命周期内保持。由于

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

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

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

我的反应已经是承认这是一个bug;但是既然他们要求我做“最好的”工作,我是不是因为提交了一个带有bug的样本而被选上了这个职位?还有什么我可以说的吗?


我不想概述一下情况,因为我不想让人觉得我是在找借口,但在我们的服务处于pre-alpha状态时,加密代码被关闭了,而且在我们投入生产之前,项目就被终止了。

我基本上只想说一下你在这里说的话。陈述你对错误的理解,为什么是错误,它的影响是什么,它的解决方案是重申你作为程序员能力的最好方式。

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