如何绕过/破解urandom值?

时间:2017-11-22 10:57:50

标签: c random

我有这个C代码,我想知道如果可能绕过这个检查?

int fd, password, input;
fd = open("/dev/urandom", 0);
read(fd, &password, 4);
scanf("%d", &input);

if (password == input)
{
    printf("OK\n")
}

或者是否可以预测urandom值?

1 个答案:

答案 0 :(得分:2)

没有。无法在正常运行的系统上预测/dev/urandom产生的值。

话虽如此,这里有可能出现错误:

  • /dev/urandom可能无法正确创建,实际上是指例如/dev/zero/dev/null

  • 您所显示的代码中没有错误处理;无法打开或读取将无法检测到,保持密码值不变。