运行两次以上时出现意外结果
本文关键字:意外 结果 两次 运行 | 更新日期: 2023-09-27 18:31:57
每当我在正确的加密密钥上运行一次时,这段代码都会返回正确的答案,但是如果我运行两次,它会给出完全不同的结果
int key = Int32.Parse(MinKeyTB.Text, System.Globalization.NumberStyles.HexNumber);
CR = new Crypto(key);
textBox3.Text = string.Empty;
foreach (string temp in (ASCIIEncoding.ASCII.GetString(CR.Decrypt(ToBurtal))).Split(''n'))
{
textBox3.Text += temp + Environment.NewLine;
}
key++;
MinKeyTB.Text = (key).ToString("X");
min键文本框是我输入要使用的键的地方,正确的键是1234,工作正常,但是如果我用1233运行两次,那么1234它会给出一个完全错误的答案
键是局部变量(应该不会导致问题)CR 是一种自定义类类型,我用新对象引用它(应该不会导致问题)我每次在显示前都清理文本框3(应该不会引起问题)ToBurtal 是全局字节 [],不会在应用程序的任何地方进行修改
知道吗?谢谢,祝你有美好的一天
我的猜测是ToBurtal
正在Decrypt
函数中被修改。尝试使用阵列的本地副本,看看是否可以解决您的问题:
byte[] ToBurtalTemp = new byte[ToBurtal.Length];
Array.Copy(ToBurtal, ToBurtalTemp, ToBurtal.Length);
foreach (string temp in (ASCIIEncoding.ASCII.GetString(CR.Decrypt(ToBurtalTemp))).Split(''n'))
// etc.