编程演示加密解密算法的实现[网络技术]
本文“编程演示加密解密算法的实现[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
文/图 暗夜舞者
===================================
目前各大公司开辟的软件都有自己的加密算法用来保护版权,用户想要利用软件的全部功效就要付费,而算法的优劣性直接决意了实现办法的艰难度.
下面我将演示一个加密解密算法的实现,为单个数据的加密解密,密钥自己肯定,界面如图1所示.这3个编辑框衔接3个控件变量,辨别是CString m_jiami、CString m_jiemi和WORD m_miyao,此中WORD范例就是unsinged short范例.加密函数的代码以下所示.
图1
CString str,str1,r;
int i,j;
str=s;
for(i=0;i<s.GetLength();i++)
{
str.SetAt(i,s.GetAt(i)+k);
//顺次提取原数据的每一个字符,加密钥后写入新的字符串
}
s=str; //更新原字符串
for(i=0;i<s.GetLength();i++)
{
j=(BYTE)s.GetAt(i);
str1="01";
str1.SetAt(0,65+j/26);
str1.SetAt(1,65+j%26); //顺次提取更新后的字符串中的每一个字符,用一种算法将一个字符分化成两个字符
r+=str1; //合成终究字符串
}
return r; //返回这个字符串
上面代码的算法很明显,就是将原字符加密钥后分化成2部份,辨别是"65+j/26"和"65+j%26".这个算法不是一成不变的,大家可以按照需求写出自己的算法.下面我再给出解密函数,其代码以下所示.
CString r,str;
int i,j;
for(i=0;i<s.GetLength()/2;i++)
{
j=((BYTE)s.GetAt(2*i)-65)*26;
j+=(BYTE)s.GetAt(2*i+1)-65;
str="0";
str.SetAt(0,j);
r+=str;
}
s=r;
for(i=0;i<s.GetLength();i++)
{
r.SetAt(i,(BYTE)s.GetAt(i)-k);
}
return r;
这个函数是加密函数的逆运算,不难理解,不过要注意范例的变更.在字符串的操作中,特别是在这样的加密解密算法的开辟中,有两个函数是非常有效的,就是GetAt()和SetAt(),它们是CString的函数,原型辨别是"TCHAR GetAt(int nIndex)const"和"void SetAt(int nIndex,TCHAR ch)",此中的nIndex是字符的位置,ch表示字符.GetAt是读取位置为nIndex的字符,SetAt是设置位置为nIndex的字符为ch.下面我们测试一下编写好的程序,如图2所示.
图2
本文只是举一反三,向大家介绍一下加密解密算法的实现办法,其实有很多高深的算法不是这样简单就可以实现的,只是本人水平有限,没有掌握,还望各位高手不吝赐教,假如大家有什么更好的实现办法,欢送交流谈论
以上是“编程演示加密解密算法的实现[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |