欢迎来到天天文库
浏览记录
ID:32588361
大小:93.56 KB
页数:38页
时间:2019-02-13
《密码学实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、密码学实验报告姓名杨帆学号13113424实验Caesar密码实验目的:掌握Caesar密码加密解密原理,并利用VC++编程实现。实验内容:Caesar密码的加密原理是对明文加上一个密钥(偏移值)而得到密文。假设密钥为3,那么字母“a”对应的ASCII码为97,加上3得100正好是字母“d”的ASCII码值,实验说明:加密实现的两种方式,只限定英文字母(区分大小写),加密时,根据明文字符是小(大)写字母,采用加密运算:密文字符二“a”或+(明文字符・“a”或+password%26+26)%26如果输入其他字符,则直接原样输出,不作处理可以是任意字符加密时,我们不做任何区分,直接利用Ca
2、esar密码算法密文字符二明文字符+password解密反之。实验结果:voidCCaesarDlg::OnButtonl()〃加密按钮{UpdateData(TRUE);//从界面上的输入的值传入成员变量m_crypt=m_plaintxt;〃密文进行初始化,它与明文的长度是相同的for(inti=ntxt.GetLength();i++)//明文一4—个输进去if(m_plaintxt.GetAt(i)>=ntxt.GetAt〃如果输入的字符是数字{m_crypt.SetAt(i,,O,+(m_plaintxt.GetAt(i)」O'+m_password%10+10)%10);〃密
3、文一个一个输进去利用setat,输到密文结果是,O,+(m_plaintxt.GetAtfiJ-'O'+m^password%10+10)%10)计算的结果UpdateData(FALSE);//成员变量的值计算好之后传给界面}elseif(m_plaintxt.GetAt_plaintxt.9O)〃如果输入的是大写字符{m_crypt.SetAt(i/A'+(m^plaintxt.GetAt(i)-'A'+m^password%26+26)%26);〃输出密文UpdateData(FALSE);//成员变量更新后的值传给界面}elseif(m_plaintxt.GetAt(_plain
4、txt.GetAt(i)>=97)〃如果输入的字符是小写字母{m_crypt.SetAt(i/a'+(m_plaintxt.GetAt(i)-,a,+m_password%26+26)%26);〃密文输出UpdateData(FALSE);}elsem_crypt.SetAt(i,m_plaintxt.GetAt(i));〃其他的字符按照原样输出UpdateData(FALSE);}}}voidCCaesarDlg::OnButton2()//解密按钮{UpdateData(TRUE);m_decrypt=m_crypt;//明文解进行初始化,等于密文的长度for(inplaintxt.
5、GetLength();i++)if(m_plaintxt.GetAt(i)>=ntxt.GetAt〃如果输入的是数字m_decrypt.SetAtfi,O+(m_crypt.GetAt(i)」O'・m_password%10+10)%10);//输出明文解setat(i)—个一个将解密的结果输入到明文解中UpdateData(FALSE);}elseif(m_plaintxt.GetAt(ilaintxt.Ge){m_decrypt.SetAt(i/A'+fm^crypt.GetAt(i)」A'・m_password%26+26)%26);UpdateData(FALSE);}else
6、if(m_plaintxt.GetAtm_plaintxt.GetAt(i)>=97){m_decrypt・SetAt(i/a'+(m_crypt.GetAt(i)-'a'-m_password%26+26)%26);UpdateData(FALSE);}elsem_decrypt.SetAt(i,m_crypt・GetAt(i));//其他字符原样输出UpdateDatafFALSE);分析:1、如果代码写为if//大写if//小写if//数字Else//(符号)那么大写字母经过加密(秘钥>26时),执行第一个if后,程序会不会执行第二第三个讦,但是会执行else,所以大写字母经过加密
7、,会变成符号。因此应将代码改为IfelseIfelselfelseo2、UpdateData(FALSE);只要放在代码最后就可以,所有成员变量的值更新之后传到界面。不用每判断一次就将数据传到界面。3、注意初始化密文和明文解,这样程序才能运行。实验二DES实验目的:掌握DES密码加密解密原理,并利用vc++编程实现。实验内容:利用DES加密算法,实现实验内容:加密实现的hithisischapter字串的加密,并同时解密。实验说明:
此文档下载收益归作者所有