为什么在条件中使用“ EnCounter >= limit ”?
why does it use " ErrCounter >= limt " in the condition?
在状态机图中,我不明白为什么条件是 ErrCounter >= limit 。我认为写 ErrCounter == limit .
很好
ErrCounter >= limit
比ErrCounter == limit
强。你有没有风险的收益。
这是保险起见。问题是在其中一种状态(甚至在转换中)中可能还有其他一些东西会增加 ErrCounter
或者 ErrCounter
在启动过程时可能已经等于 limit (顺便说一句,这应该无论如何都会导致拒绝,但没关系)。
让我们把它作为生活的例子。想象一下这两种情况(假设 limit = 3
):
持卡人已经在其他地方(例如在商店)尝试了三次未能使用正确的密码。现在ErrCounter = 3
。持卡人决定在 ATM 机上再试一次。 ATM 读取 ErrCounter
(作为 Authentication
的一部分)并且由于 CheckPin
失败(由于早期尝试太多而自动)现在 ErrCounter
再次递增(所以 ErrCounter = 4
).对于弱案例,您可以在无限循环中一次又一次地尝试。
卡被复制了(你知道的,现在它可以通过任何 NFC 处理 phone 例如)。想象一下,两个人想要取一大笔钱,所以他们同时在两台 ATM 机上工作。不幸的是,他们发现自己处于双方都输错 PIN 两次的情况。假设 ATM 读取当前 ErrCounter
作为 Authentication
的一部分。所以我们有(括号中的结果 ErrCounter
):
- 合作伙伴 1 在 ATM1 上输入了错误的 PIN (
ErrCounter = 1
)
- 合作伙伴 2 在 ATM2 上输入了错误的 PIN (
ErrCounter = 2
)
- 合作伙伴 1 在 ATM1 (
ErrCounter = 3
) 上输入了错误的 PIN。合作伙伴 1 的尝试(phone)现已被拒绝
- 合作伙伴 2 在 ATM2 (
ErrCounter = 4
) 上输入了错误的 PIN。如果没有 >=
它会再次进行无限循环的尝试。有了更强的不等式,这个尝试也被拒绝了。
在状态机图中,我不明白为什么条件是 ErrCounter >= limit 。我认为写 ErrCounter == limit .
很好ErrCounter >= limit
比ErrCounter == limit
强。你有没有风险的收益。
这是保险起见。问题是在其中一种状态(甚至在转换中)中可能还有其他一些东西会增加 ErrCounter
或者 ErrCounter
在启动过程时可能已经等于 limit (顺便说一句,这应该无论如何都会导致拒绝,但没关系)。
让我们把它作为生活的例子。想象一下这两种情况(假设 limit = 3
):
持卡人已经在其他地方(例如在商店)尝试了三次未能使用正确的密码。现在
ErrCounter = 3
。持卡人决定在 ATM 机上再试一次。 ATM 读取ErrCounter
(作为Authentication
的一部分)并且由于CheckPin
失败(由于早期尝试太多而自动)现在ErrCounter
再次递增(所以ErrCounter = 4
).对于弱案例,您可以在无限循环中一次又一次地尝试。卡被复制了(你知道的,现在它可以通过任何 NFC 处理 phone 例如)。想象一下,两个人想要取一大笔钱,所以他们同时在两台 ATM 机上工作。不幸的是,他们发现自己处于双方都输错 PIN 两次的情况。假设 ATM 读取当前
ErrCounter
作为Authentication
的一部分。所以我们有(括号中的结果ErrCounter
):- 合作伙伴 1 在 ATM1 上输入了错误的 PIN (
ErrCounter = 1
) - 合作伙伴 2 在 ATM2 上输入了错误的 PIN (
ErrCounter = 2
) - 合作伙伴 1 在 ATM1 (
ErrCounter = 3
) 上输入了错误的 PIN。合作伙伴 1 的尝试(phone)现已被拒绝 - 合作伙伴 2 在 ATM2 (
ErrCounter = 4
) 上输入了错误的 PIN。如果没有>=
它会再次进行无限循环的尝试。有了更强的不等式,这个尝试也被拒绝了。
- 合作伙伴 1 在 ATM1 上输入了错误的 PIN (