我使用以下功能保护一些字符串:
public static string ProtectString(string input)
{
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
return enc.GetString(MachineKey.Protect(enc.GetBytes(input), null));
}
如果我现在加密字符串,攻击者现在可以(即用户名),是否能够使用加密和解密的值提取机器密钥?
答案 0 :(得分:1)
我做了一些研究,发现使用过的算法就是其中之一:DES, 3DES or AES。而且这些算法对纯文本攻击非常有抵抗力。
基于Chris的评论,DES非常弱,所以如果可能的话选择AES。
但是,向攻击者提供纯文本值并不是理由:)
答案 1 :(得分:-1)
如果你给黑客一个密文和明文,那就是他需要强制加密密钥。那是一个高性能计算机的农场。
真的很少有理由同时发送明文和纯文本。只是不要这样做。如果您想使明文防篡改,请将明文与HMAC一起传递。