如何使用Rfc2898DeriveBytes解密以下函数字符串?

Tus*_*aru 1 c# encryption cryptography

如何解密使用以下函数加密的字符串?

private static byte[] salt = new byte[] { 23, 21, 32, 33, 46, 59, 60, 74 };
private static int iterations = 1000;
private static int cb = 32;

public static string GetEncrypt(string plainText)
{
    Rfc2898DeriveBytes k = new Rfc2898DeriveBytes(plainText, salt, iterations);
    byte[] data = k.GetBytes(cb);
    return Convert.ToBase64String(data);
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

你不能.你误解了目的Rfc2898DeriveBytes.它并不意味着是一种可逆加密算法 - 它只是一种导出密钥的方法,然后您可以在另一种加密算法中使用该密钥.

我们的想法是,您要求输入密码,将其(使用盐)转换为加密密钥,然后使用该密钥加密数据(例如,加密TripleDES).

然后,再次请求密码,使用相同的盐生成相同的密钥,然后您可以使用它来解密加密的数据.

有关更多信息,请阅读RFC 2898.