实验内容:
1、运用Java、C#等语言编写一个图形化桌面窗口,完成移位的加密解密过程;
2、基本界面元素包括:标题、输入文本框、结果显示文本框、加密解密按钮、密钥选择下拉框等;
3、完成输入完整性校验(仅英文字符串、英文逗号句号及空格为合法字符);
4、实现对英文字符的加解密的功能。
窗体设计
源程序
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace password
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string word = textBox1.Text;
byte[] array = System.Text.Encoding.ASCII.GetBytes(word); //数组array为对应的ASCII数组
string ASCIIstr2 = null;
int[] intFont = new int[1000];
string final = "";
for (int i = 0; i < array.Length; i++)
{
int asciicode = (int)(array[i]);
ASCIIstr2 = Convert.ToString(asciicode);//字符串ASCIIstr2 为对应的ASCII字符串
intFont[i] = int.Parse(ASCIIstr2);
if (intFont[i] >= 65 && intFont[i] <= 90 || intFont[i] >= 97 && intFont[i] <= 122 || intFont[i] == 32 || intFont[i] == 44 || intFont[i] == 46)
{
if (intFont[i] >= 65 && intFont[i] <= 90)
{
intFont[i] = intFont[i] + int.Parse(comboBox1.Text);
if (intFont[i] > 90)
{
intFont[i] = ((intFont[i] - 65) % 26) + 65;
}
final += Convert.ToChar(intFont[i]).ToString();
}
else if (intFont[i] >= 97 && intFont[i] <= 122)
{
intFont[i] = intFont[i] + int.Parse(comboBox1.Text);
if (intFont[i] > 122)
{
intFont[i] = ((intFont[i] - 97) % 26) + 97;
}
final += Convert.ToChar(intFont[i]).ToString();
}
if (intFont[i] == 32 || intFont[i] == 44 || intFont[i] == 46)
{
final += Convert.ToChar(intFont[i]).ToString();
}
}
else
{
MessageBox.Show("您输入有误\n仅英文字符串、英文逗号句号及空格为合法字符");
}
}
textBox2.Text = final;
}
private void button2_Click(object sender, EventArgs e)
{
string word = textBox1.Text;
byte[] array = System.Text.Encoding.ASCII.GetBytes(word); //数组array为对应的ASCII数组
string ASCIIstr2 = null;
int[] intFont = new int[1000];
string final = "";
for (int i = 0; i < array.Length; i++)
{
int asciicode = (int)(array[i]);
ASCIIstr2 = Convert.ToString(asciicode);//字符串ASCIIstr2 为对应的ASCII字符串
intFont[i] = int.Parse(ASCIIstr2);
if (intFont[i]>=65 && intFont[i]<=90|| intFont[i]>=97 && intFont[i]<=122 || intFont[i] == 32 || intFont[i] == 44 || intFont[i] == 46)
{
if (intFont[i] >= 65 && intFont[i] <= 90)
{
intFont[i] = intFont[i] - int.Parse(comboBox1.Text);
if (intFont[i] < 65)
{
intFont[i] = (intFont[i] - 64) + 90;
}
final += Convert.ToChar(intFont[i]).ToString();
}
else if (intFont[i] >= 97 && intFont[i] <= 122)
{
intFont[i] = intFont[i] - int.Parse(comboBox1.Text);
if (intFont[i] < 97)
{
intFont[i] = (intFont[i] - 96) + 122;
}
final += Convert.ToChar(intFont[i]).ToString();
}
if (intFont[i] == 32 || intFont[i] == 44 || intFont[i] == 46)
{
final += Convert.ToChar(intFont[i]).ToString();
}
}
else
{
MessageBox.Show("您输入有误\n仅英文字符串、英文逗号句号及空格为合法字符");
}
}
textBox2.Text = final;
}
}
}