【发布时间】:2018-07-31 10:01:34
【问题描述】:
我正在尝试像这里一样反思 TripleDES(同样的问题):https://social.msdn.microsoft.com/Forums/vstudio/en-US/8fdfcce7-3a8a-4271-8557-3df715c80df8/weak-key-cryptographic-exception?forum=netfxbcl
TripleDES tripleDESalg = TripleDES.Create();
byte[] EmptyKey = new byte[0x18];
byte[] EmptyIV = new byte[8];
TripleDESCryptoServiceProvider sm = tripleDESalg as TripleDESCryptoServiceProvider;
MethodInfo mi = sm.GetType().GetMethod("_NewEncryptor",BindingFlags.NonPublic | BindingFlags.Instance);
object[] Par = { EmptyKey, sm.Mode, IV, sm.FeedbackSize, 0 };
ICryptoTransform trans = mi.Invoke(sm, Par) as ICryptoTransform;
加密时我可以成功绕过弱密钥异常,但是当我想要一个解密器时,没有_NewDecryptor这样的东西,只有_NewEncryptor(我使用.GetMethods()检查了这个)。那么有没有可能的方法来为解密器实现相同的目标?也许使用TripleDESCng() 会有所帮助(因为它有不同的方法)。
【问题讨论】:
-
请注意,当您使用私有反射时,您的应用程序可能会因任何补丁安装或 vNext 安装而中断。绝对不能保证稳定。
标签: c# .net cryptography