C# 实现移位密码

实验内容:
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;
    }
}

}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值