做个测试,希望有所帮助。 ///
/// 加密
///
private void button1_Click(object sender, EventArgs e)
{
string data1 = this.textBox1.Text.Trim();
if (data1.Length != 4)
{
MessageBox.Show("输入不是四位整数,请重新输入!", "提示信息");
this.textBox1.Select();
return;
}
foreach (char c in data1)
{
if (!(c >= '0' && c <= '9'))
{//如果不是整数
MessageBox.Show("输入中含有非整数,请重新输入!", "提示信息");
this.textBox1.Select();
return;
}
} int d1 = Convert.ToInt32(data1[0].ToString());
int d2 = Convert.ToInt32(data1[1].ToString());
int d3 = Convert.ToInt32(data1[2].ToString());
int d4 = Convert.ToInt32(data1[3].ToString());
int d = 0;
//加密
//每位数字用该位数字加7所得的和对10取模,所得到的数值代替该位数字
d1 = (d1 + 7) % 10;
d2 = (d2 + 7) % 10;
d3 = (d3 + 7) % 10;
d4 = (d4 + 7) % 10;
//第1位数字和第3位数字交换位置
d = d1;
d1 = d3;
d3 = d;
//第2位和第4位数字交换位置
d = d2;
d2 = d4;
d4 = d; //显示加密后的字符串
string data2 = d1.ToString() + d2.ToString() + d3.ToString() + d4.ToString();
this.textBox2.Text = data2;
} ///
/// 解密
///
private void button2_Click(object sender, EventArgs e)
{
if (this.textBox2.Text == string.Empty)
{
MessageBox.Show("未进行加密操作!", "提示信息");
return;
}
string data2 = this.textBox2.Text.Trim();
int d1 = Convert.ToInt32(data2[0].ToString());
int d2 = Convert.ToInt32(data2[1].ToString());
int d3 = Convert.ToInt32(data2[2].ToString());
int d4 = Convert.ToInt32(data2[3].ToString());
int d = 0; //解密
//第1位数字和第3位数字交换位置
d = d1;
d1 = d3;
d3 = d;
//第2位和第4位数字交换位置
d = d2;
d2 = d4;
d4 = d;
//每位数字用该位数字加10所得的和减7,所得到的数值代替该位数字
d1 = d1 >= 7 ? d1 - 7 : (d1 + 10) - 7;
d2 = d2 >= 7 ? d2 - 7 : (d2 + 10) - 7;
d3 = d3 >= 7 ? d3 - 7 : (d3 + 10) - 7;
d4 = d4 >= 7 ? d4 - 7 : (d4 + 10) - 7;
//显示加密后的字符串
string data3 = d1.ToString() + d2.ToString() + d3.ToString() + d4.ToString();
this.textBox3.Text = data3;
}