在为一家公司进行面试时,我被要求提交几个代码示例,以突出我的"最佳"工作.我被问了几个关于特定代码示例的问题,其中一个提到了一个bug.
代码示例是一个WCF Web服务,它使用AES加密不透明的blob.服务使用blob来标识特定服务请求的所有资源.错误是.NET RijndaelManaged类与CBC模式一起使用,没有正确设置IV.RijndaelManaged类将在类实例化期间自动生成适当的IV,在代码示例中,它在首次使用加密期间发生,并在ASP .NET应用程序的生命周期内保持不变.由于ASP.NET应用程序可以出于各种原因重新启动,因此在App启动期间生成的新IV值(错误),这些不透明的blob可能会从一次服务调用"无效"到下一次.
问题本身就是"IV在哪里设置解密?"
我的回答已经是承认这是一个错误; 但是既然他们要求我做出"最好"的工作,那么我是否因为提交了一个带有错误的样本而担任此职位?我还能说更多吗?
我不愿意勾勒出这种情况,因为我不想看起来像是在借口,但加密代码在我们的服务处于pre-alpha状态时被关闭了,项目在我们进入之前被杀死了生产.
每个人都写错误.作为程序员,您的部分工作就是如何处理这些错误.我会尝试概述情况,修复错误,然后重新提交代码,就像你在工作中一样.在那之后,这取决于公司以及他们如何做出招聘决定.然而,如果是我,并且你表现出主动权并通过跟进和修复错误来承担责任,我不知道它是否会成为交易破坏者.事实上,它可以将消极变为积极的.
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |