我知道使用 RSA 有几种方法可以加密和解密数据,这意味着您可以使用公钥或私钥(或两者)进行加密,也可以仅使用私钥或公钥进行解密,或两者兼而有之。
使用 Triple Des,您需要密钥和 iv 来解密吗?或者你能用钥匙以某种方式做到这一点吗?(公钥?)
我知道使用 RSA 有几种方法可以加密和解密数据,这意味着您可以使用公钥或私钥(或两者)进行加密,也可以仅使用私钥或公钥进行解密,或两者兼而有之。
使用 Triple Des,您需要密钥和 iv 来解密吗?或者你能用钥匙以某种方式做到这一点吗?(公钥?)
作为一种对称算法,DES(和 3DES)使用共享密钥。它没有公钥。如果在加密期间使用了这个 IV,那么解密者必须知道 IV。
RSA 是一种公钥(或非对称)加密算法——这意味着存在公钥和私钥的密钥对,您可以使用其中一个加密并使用另一个解密。
DES 和 Triple-DES 是分组密码。您可以将它们与一种操作模式一起使用来加密或解密消息 - 您使用相同的密钥进行加密和解密。这被称为对称算法。
一些操作模式(所有好的模式)需要一个初始化向量,所以相同的明文不会导致相同的密文(有时还有其他弱点)。通常这个初始化向量应该与密文一起发送/存储,它不一定是秘密的。根据操作模式和使用场景,IV 应该只使用一次,可以是随机的,也可以是不可预测的。
此外,现在您不应该使用 DES(它的密钥太小而无法保证安全)。Triple-DES 还可以,但比 AES 等现代算法慢得多(也不是更安全)。
3DES 与任何其他分组密码没有什么不同。如果您使用需要 IV 的密码模式,并且您没有在消息头中包含 IV,则需要它来解密消息。