#include stdio.h
#include string.h
int main()
{
char passwd[100],encrypted[100];
int i,j,k,t,move;
while(1)
{
printf("Enter message to be encrypted:");
gets(passwd);
move=3;
for(i=0; istrlen(passwd); i++)
{
if(passwd[i] = 'A' passwd[i] = 'Z')
{
passwd[i] = ((passwd[i]-'A')+move)%26+'A';
} else if(passwd[i] = 'a' passwd[i] = 'z')
{
passwd[i] = ((passwd[i]-'a')+move)%26+'a';
}
}
printf("%s",passwd);
printf("\n");
}
return 0;
}
这道题实际上就是C语言版的凯撒加密(字母往后面移动1-25之间的任意一位数)
#includestdio.h
#includectype.h
int main()
{int i;
char s[200];
gets(s);
for(i=0;s[i];i++)
if(isalpha(s[i]))
{s[i]+=3;
if(s[i]%0x2026)s[i]-=26;
}
puts(s);
return 0;
}
1、在我们的编辑页面输入以下代码。
2、需要将其分成两部分进行代码的编写,因为我们通过观察会发现一部分是顺着算,一部分是逆着算,所以我们必须要分两部分来完成源代码的编辑。
3、先对“将字母A变成字母G,a变成g,B变成H,b变成h”这一部分进行源代码的编写。
4、再对第二个部分“U变成A,V变成B”来进行编写,在整个程序,我们都可以直接用IF判断语句来进行判断输出结果即可。
5、最后,我们的编代码编写完成后,点击“运行”,弹出输入页面之后,在输入面板输入任意一个电文字符,然后点击回车键即可得出我们的对应的相应密码。
最简单的加密,每个字母做相同的位移,这里是向前移两个.
uvwx
所以,X向前倒两个就是U
MIXKG==PLANJ(这单词是什么意思?)
附abcedefghijklmnopqrstuvwxyz
代码没法短了,要是“加密后还是英文字母和数字”的话代码长度至少是下面的3倍。。
=========================================================
dim s
s=strToPassword("zxc545vb12nn12m",-3)'左移3位“加密”
msgbox s,,"加密后"
s=strToPassword(s,3)'将s再右移3位的话就可以“解密”了
msgbox s,,"解密后"
'对字符串进行左移右移操作,移多少位不限,左移需添加负号
Function strToPassword(strSource, intMove)
Dim i, intAscTemp, intAscTempMove, strTemp
For i = 1 To Len(strSource)
strTemp = Mid(strSource, i, 1)
intAscTemp = Asc(strTemp)
intAscTempMove = intAscTemp + intMove
strTemp = Chr(intAscTempMove)
strToPassword = strToPassword strTemp
Next
End Function