我正在修改现有的安全代码。规范很清楚,有示例代码,但我不是密码专家。事实上,示例代码有一个免责声明,实际上是“不要逐字使用此代码”。
在审核我要修改的代码(据说功能完整)时,我遇到了这个用于生成挑战的小 gem :
static uint16 randomSeed;
...
uint16 GetRandomValue(void)
{
return randomSeed++;/* This is not a good example of very random generation :o) */
}
当然,我立即做的第一件事就是把它传到办公室里,这样我们都能开怀大笑。
生成此代码的程序员知道这不是一个好的算法(如注释所示),但我认为他们不了解安全隐患。他们甚至没有费心在主循环中调用它,所以它至少会变成一个自由运行的计数器 - 仍然不理想,但除此之外的世界。
但是,我知道我编写的代码同样会导致真正的安全专家窃笑或颤抖。
-亚当
最佳答案
不要尝试自己动手 - 如果可能,请使用标准库。对安全代码的细微更改可能会产生难以发现的巨大影响,但可能会打开安全漏洞。例如,two modified lines一个图书馆打开了一个洞,这个洞在很长一段时间内并不明显。
关于security - 加密代码的陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/497156/