作者:广东在线游戏网日期:
返回目录:游戏解答
#include<stdio.h>
int main()
{
char a[1000];
int i,j,p;
i=0;
while((a[i]=getchar())!='@')
回i++;
p=i;
a[i]='\0';
for(i=0;a[i]!='\0';i++){
if(a[i]>='a'&&a[i]<='y')
a[i]=a[i]+1;
if(a[i]>='A'&&a[i]<='Y')
a[i]=a[i]+33;
if(a[i]=='z')
a[i]='a';
if(a[i]=='Z')
a[i]='A';
}
for(i=0;i<p;i++)
printf("%c",a[i]);
printf("\n");
return 0;
}
希望可以帮到你,祝你答生活愉快。
public static void encrypt(String str, int k) {
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch >= 'A' && ch <= 'Z') {
ch = (char) (ch + k % 26);
if (ch > 'Z') {
ch = (char) (ch - 26);
}
}
if (ch >= 'a' && ch <= 'z') {
ch = (char) (ch + k % 26);
if (ch > 'z') {
ch = (char) (ch - 26);
}
}
System.out.print(ch);
}
}
输入字符串和位移位数,直接输出编码加密后的字符串,或者也可以自己改成将7a686964616fe78988e69d83336加密后的字符串返回。
加上这个函数吧
void force_decode(void)
{
char buf[100];
char buf1[100];
int n,i;
gets(buf);
for(n = 1; n < 26; n ++)
{
自printf("use key %d\n", n);
for(i = 0; buf[i]; i++)
{
if(buf[i] >= 'A' && buf[i]<='Z')
{
buf1[i] = (buf[i]-'A'-n+26)%26+'A';
}
else if(buf[i] >= 'a' && buf[i]<='z')
{
buf1[i] = (buf[i]-'a'-n+26)%26+'a';
}
}
buf1[i] = 0;
printf("%s\n", buf1);
}
}
其实 如果改成在main中输入,然后把decode改成处理字符知串,并获取结果。在main出输出。道
那么要求的暴力破解就可以直接用decode的代码了。
#include<stdio.h>
#include<string.h>
int main()
{
int i;int number;
char a[100];
scanf("%s",a);
number=strlen(a);
for(i=0;i<number;i++){
答a[i]=a[i]+4;
}
for(i=0;i<number;i++){
printf("%c",a[i]);
}
return 0;
}