密码学实验报告总结.docx(本文档为Word版本,
项目名称:XXXXXXXXX
项目负责人:XXX
联系电话:XXXXX
编制日期:XXXXX
密码学实验报告
实验目的:掌握Caesar密码加密解密原理,并利用VC卄编程实现。
实验内容:Caesar密码的加密原理是对明文加上一个密钥(偏移值)而得到密文。 假设密钥为
3,那么字母“a”对应的ASCII码为97,加上3得100正好是字母“d” 的ASCII码值,
实验说明:加密实现的两种方式,只限定英文字母(区分大小写),加密时,根据明 文字符是小(大)写字母,采用加密运算:
密文字符=“a” 或 “A” + (明文字符-“a” 或 “A” +password%26+26) %26 如果输入其他字符,则直接原样输出,不作处理
可以是任意字符
加密时,我们不做任何区分,直接利用Caesar密码算法
密文字符=明文字符+password解密反之。
实验结果:
void CCaesarDlg::OnButtonl() 〃加密按钮
{
UpdateData fTRUE); 〃从界面上的输入的值传入成员变量
m_crypt=m_plaintxt;//密文进行初始化,它与明文的长度是相同的 for(int i=O;i<();i++) // 明文一个一个输进去
{
if((i)>=48&&(i)<=57) 〃如果输入的字符 是数字
{
(i/0,+((i)-'0,+m_password%10 +10)%10);
〃密文一个一个输进去利用setat,输到密文结果是
,0,+((i)-,0'+m_password%10 +10)%10)计算的结果
UpdateData(FALSE);//成员变量的值计算好之后传给界面
}
else
if((i)>=65&&(i)<=90) 〃如果输入的是大
写字符
{
(i/A,+((i)-'A,+m_password % 26+26)%26);
〃输出密文
UpdateData(FALSE);//成员变量更新后的值传给界面
}
else
if((i)<=122&&(i)>=97) 〃如果输入的字符是
小写字母
{
(i/a,+((i)-'a,+m_password%26+26)%26); 〃密文输出
UpdateData(FALSE);
}
else
{
(i,(i)); // 其他的字符按照原样输出
UpdateData(FALSE);
void CCaesarDlg::OnButton2() 〃解密按钮
{
UpdateData(TRUE);
m_decrypt=m_crypt; 〃明文解进行初始化,等于密文的长度
for(int i=O;i<();i++)
{
if((i)>=48&&(i)<=57) 〃如果输入的是数字 {
(i/0,+((i)-'0,-m_password%10 +10)%10);
〃输出明文解setat(i)—个一个将解密的结果输入到明文解中
UpdateData(FALSE);
}
else
if((i)>=65&&(i)<=90)
{
(i/A,+((i)-'A,-m_password % 26+26)%26);
UpdateData(FALSE);
}
else
if((i)<=122&&(i)>=97)
(i/a,+((i)-'a,-m_password%26+26)%26);
UpdateData(FALSE);
}
else
(i/(i)); // 其他字符原样输
密码学实验报告总结 来自淘豆网m.daumloan.com转载请标明出处.