检查密钥有效性的一种简单方法是在加密之前向明文添加已知部分。如果解密没有重现,那就不是正确的密钥。
已知部分不应该是常数,因为那是一个瞬间 婴儿床 。但它可能是例如是明文的哈希;如果散列解密文本产生相同的散列值,则密钥可能是正确的(除了 哈希冲突 )。
如果你正在加密一些明文(长度 ñ ),然后有2 ñ 唯一的输入字符串,每个必须产生一个唯一的密文(否则它不会是可逆的)。因此,所有可能的长度字符串 ñ 是有效的密文。但是对于所有键都是如此。因此,对于任何给定的密文,有2个 ķ 获得它的方式,每个都有不同的长度 ķ 。
因此,回答你的第一个问题:非常简单!只需选择一个任意键,然后“解密”密文。您将获得与密钥匹配的明文。
我不确定你的意思是“例程通常告诉你密钥是否正确”。