第4章 字符串的加密与解密案例

字符串的加密与解密案例

一、教学目标

1、了解字符串加密与解密的规律

2、掌握C#中字符串常用函数的使用方法

3、掌握条件语句以及循环语句的使用方法

二、教学重点

1、能根据加密解密的变换规律,设计程序的算法

2、正确的使用字符串的常用函数来操作字符串。

3、能够正确的使用条件语句和循环语句来设计程序的加密解密功能。

三、教学难点

能根据加密与解密的变换规律,设计程序的算法。

四.教学过程

(一)复习

1、常见的循环结构有哪几种形式?(for、while、do…while、foreach).

2、

(二)、导课

在常见的网络应用中,常常会涉及一些重要数据信息,比如网上银行账号、密码等,为了考虑数据的安全性,我们需要对数据进行加密来确保数据具备一定的安全性,从而不会轻易的被别人窃取、修改甚至破坏。这节课我们将制作一个简单的加密解密器来使同学们掌握字符串的相关操作函数,加深我们所学的条件语句、循环语句的使用方法。

(三)、新课

案例:建立一个“加密解密器”,通过对一个字符串按照一定变换规则转换成另外一个字符串,从而实现加密功能;反之将加密后的字符串按照一定的变换规则进行转换从而得到原先的字符串,实现解密功能。

 

 

 

1、加密规则说明

Ø       字符串必须全部为大写字母

Ø       通过将原文字符串中每位字符向右移动3位并以26个字符为模来实现加密

例如:A->DB->EH->K.......X->AY->BZ->C

加密前:ACDZ加密后:DFGC

2、主要的事件过程

  protectedvoid btnJiaMi_Click(objectsender,EventArgs e)

  {

       //定义一个字符数组用于存放26个字母

        char[]zimus=newchar[26];    

        //将字符串转换为字符数组

       char[]mingwen = txtMingWen.Text.ToCharArray();

        txtMiWen.Text = "";

        for(int i = 0; i < 26; i++)

        {

           //给字符数组赋值

            zimus[i] = (char)(65+i);      

        }

        for(int j = 0; j < mingwen.Length; j++)

        {

           //原文中字母在26字母表中的位置变量

            intindex = 0;

           //转换后字母在26字母表中的位置变量

           intpoint = 0;

//判断原文文本是否为大写字母

            if(mingwen[j] < 'A' || mingwen[j] > 'Z'){

                lblMessage.Text = "含有非法字符!";

                break;

            }else

            {

                for (int i = 0; i< 26; i++)

                {

                    if (zimus[i] == mingwen[j])

                    {

                     //找出原文中字母在26字母表中的位置              

                        index =i;      

                       }

                }

              //转换后字母在26字母表中的位置

                point = (index + 3)% 26;               

              //将字母表中对应的密码字母赋值给密码字符数组

               mingwen[j] = zimus[point];

              //通过字符串链接的形式将密码字母连接。

                txtMiWen.Text =txtMiWen.Text + mingwen[j];

            }

        }

    }

3、相关知识点

1)、字符数组的定义

    char[] str=newchar [26]; 使用new关键字创建一个大小为26的字符数组的定义,使用new关键字创建数组时必须制定数组的大小,否则会出错。

2)、字符串转换为字符数组

    string s = "hello,world";                              

   char[] str = s.ToCharArray(); 

3)、变量.length:求变量的长度,返回值为数字型。

    string s = "hello,world";

   int len = s.Length;

    也可以是数组名.Length,则表示数组的大小。

4)、(char)变量:把数字转换为字符,查代码代表的字符。

    char c=(char)65;

5)、字串变量.Replace(子字串,替换为):字串替换

    例如:

         stringstr = "中国";

        str = str.Replace("国","央");

五、教学总结

1、本案例的主要算法思想是什么,这些算法你分别应用了什么语句来完成

2、字符串的常用函数的使用方法

六、作业

根据老师讲解的解密算法的变换规则,写出解密算法的具体实现。

七、教学后记

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值