1

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

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);
}
4

1 回答 1

9

你不能。你误解了Rfc2898DeriveBytes. 它并不是一种可逆的加密算法——它只是一种派生密钥的方法,然后您可以在另一个加密算法中使用该密钥。

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

稍后,您再次询问密码,使用相同的盐生成相同的密钥,然后您可以使用它来解密加密数据。

阅读RFC 2898了解更多信息。

于 2013-06-02T07:52:42.047 回答