例如,信用卡到期月份只能是十二个值。因此,黑客有十分之一的机会猜测一个月的正确加密值。如果他们知道这一点,他们能否更快地破解加密?
如果是这种情况,需要多少变量来避免这种情况?银行卡号安全码通常只有三位数呢?
答案 0 :(得分:1)
如果以正确的方式使用AES之类的正确密码,那么加密这些值是完全安全的。
这是因为被认为是安全的操作模式(例如CBC和CTR)采用了一个称为初始化向量的附加参数,即使同一个纯文本被多次加密,它也能有效地使密文随机化。
请注意,正确使用IV非常重要。加密函数的每次调用都必须使用不同的IV。对于CBC模式,IV必须是不可预测的并且最好是随机的,而CTR需要唯一的IV(随机IV通常也不是CTR的坏选择。)
答案 1 :(得分:1)
良好的加密意味着,如果用户知道例如您提到信用卡的到期月份是十二个值中的一个,那么它将仅限制选项的数量,而不是更多。
即
如果黑客需要猜测三个数字a,b,c,则每个数字的值都可以是1到3。 选项数量为3 * 3 * 3 = 27。 现在,黑客发现第一个数字a始终是固定值2。 所以选项的数量是1 * 3 * 3 = 9。 如果显示数字a的值将导致将选项数量限制为小于9的值,而在强大的模型中,如果其中一个数字将被显示,那么选项的数量将受到限制将完全是9。
现在你显然没有使用exp。加密的日期,我想。
我希望我足够清楚。