C写的一个解密ASCII加密的小工具
2008/06/22 01:21 by hackest 本站原创
题目:C写的一个解密ASCII加密的小工具
作者:hackest [H.S.T.]
来源:hackest's blog
很久很久以前(英文版:Long long time ago.)
也就是我年轻的时候,在注入某些网站的时候
猜解的结果是一种比较奇怪的加密密码
比如如下密文:
bfpms (admin)
lg6;8>9; (ke373823)
看起来确实比较怪异吧
这几天发现有人在群里又问到与此相关的话题
网上查了下也好像没有太多关于这个的资料
也难怪有些小菜菜不会解密了,嘿嘿……
不过,有我这样以“为菜鸟解惑”为己任的装X客
自然不会让小菜们难办的咯
其实这个是勉强可以说是ASCII加密
加密算法是:字符的ASCII值第N位加N
比如admin的加密过程是这样的:
1、根据加密算法可以知道a字符的加密过程如下:
字符a是字符串admin中的第1位
a的加密过程就是:字符a的ASCII值+1=字符a加密后的字符
字符a的ASCII值为97,97+1=98
ASCII值为98的字符查表可以知道为字符b
2、根据加密算法可以知道b字符的加密过程如下:
字符d是字符串admin中的第2位
d的加密过程就是:字符d的ASCII码+2=字符d加密后的字符
字符d的ASCII值为100,100+2=102
ASCII值为102的字符查表可以知道为字符f
3、根据加密算法可以知道m字符的加密过程如下:
字符m是字符串admin中的第3位
m的加密过程就是:字符m的ASCII码+3=字符m加密后的字符
字符m的ASCII值为109,109+3=112
ASCII值为112的字符查表可以知道为字符p
4、根据加密算法可以知道i字符的加密过程如下:
字符i是字符串admin中的第4位
i的加密过程就是:字符i的ASCII码+4=字符i加密后的字符
字符i的ASCII值为105,105+4=109
ASCII值为109的字符查表可以知道为字符m
5、根据加密算法可以知道n字符的加密过程如下:
字符n是字符串admin中的第5位
n的加密过程就是:字符n的ASCII码+5=字符n加密后的字符
字符n的ASCII值为110,110+5=115
ASCII值为115的字符查表可以知道为字符s
综上所述:字符串admin加密后的结果就是bfpms
当然介绍加密算法过程的不是我们的目的
这只是帮我们了解算法到底是如何加密的
对于小菜菜们来说,怎么解密才是重中之重
现在我们知其然,更知其所以然
解密就好办多了,我用我仅有的一点点编程功力
用C写了个小工具,代码是以前写的了
我就懒得改了,在邪恶八进制上面发布过的
以下代码在DEV C++下编译通过:
#include
#include
main()
{
int any,i;
char *encode,*decode;
printf("******************************************\n");
printf("欢迎使用此解密工具^_^ *\n");
printf("by:hackest[E.S.T] *\n");
printf("欢迎访问:http://forum.eviloctal.com *\n");
printf("******************************************\n");
printf("\n");
printf("请输入密码长度:");
scanf("%d",&any);
encode=(char *)malloc(any+1);
decode=(char *)malloc(any+1);
getchar();
printf("请输入密码密文:");
for(i=0;i {scanf("%c",encode+i);
if(encode=='\n')break;
decode=encode-i-1;
}
encode='\0';
decode='\0';
printf("密码解密明文为:%s\n",decode);
return 0;
}
运行示例:

点此下载此工具
File: C:\decode.exe
Size: 15266 bytes
Modified: 星期六 2007年3月3日, 0:57:40
MD5: 7DD40B259B36694D9D20001460CE4F09
SHA1: A27D2A0ACF4C97044B2C39EF544F54EFAEC5339E
CRC32: C84864A1
本文纯属个人意见,如有错漏,还望批评指正!
如若转载,请注明来源,保留版权,谢谢!
作者:hackest [H.S.T.]
来源:hackest's blog
很久很久以前(英文版:Long long time ago.)
也就是我年轻的时候,在注入某些网站的时候
猜解的结果是一种比较奇怪的加密密码
比如如下密文:
bfpms (admin)
lg6;8>9; (ke373823)
看起来确实比较怪异吧
这几天发现有人在群里又问到与此相关的话题
网上查了下也好像没有太多关于这个的资料
也难怪有些小菜菜不会解密了,嘿嘿……
不过,有我这样以“为菜鸟解惑”为己任的装X客
自然不会让小菜们难办的咯
其实这个是勉强可以说是ASCII加密
加密算法是:字符的ASCII值第N位加N
比如admin的加密过程是这样的:
1、根据加密算法可以知道a字符的加密过程如下:
字符a是字符串admin中的第1位
a的加密过程就是:字符a的ASCII值+1=字符a加密后的字符
字符a的ASCII值为97,97+1=98
ASCII值为98的字符查表可以知道为字符b
2、根据加密算法可以知道b字符的加密过程如下:
字符d是字符串admin中的第2位
d的加密过程就是:字符d的ASCII码+2=字符d加密后的字符
字符d的ASCII值为100,100+2=102
ASCII值为102的字符查表可以知道为字符f
3、根据加密算法可以知道m字符的加密过程如下:
字符m是字符串admin中的第3位
m的加密过程就是:字符m的ASCII码+3=字符m加密后的字符
字符m的ASCII值为109,109+3=112
ASCII值为112的字符查表可以知道为字符p
4、根据加密算法可以知道i字符的加密过程如下:
字符i是字符串admin中的第4位
i的加密过程就是:字符i的ASCII码+4=字符i加密后的字符
字符i的ASCII值为105,105+4=109
ASCII值为109的字符查表可以知道为字符m
5、根据加密算法可以知道n字符的加密过程如下:
字符n是字符串admin中的第5位
n的加密过程就是:字符n的ASCII码+5=字符n加密后的字符
字符n的ASCII值为110,110+5=115
ASCII值为115的字符查表可以知道为字符s
综上所述:字符串admin加密后的结果就是bfpms
当然介绍加密算法过程的不是我们的目的
这只是帮我们了解算法到底是如何加密的
对于小菜菜们来说,怎么解密才是重中之重
现在我们知其然,更知其所以然
解密就好办多了,我用我仅有的一点点编程功力
用C写了个小工具,代码是以前写的了
我就懒得改了,在邪恶八进制上面发布过的
以下代码在DEV C++下编译通过:
引用
#include
#include
main()
{
int any,i;
char *encode,*decode;
printf("******************************************\n");
printf("欢迎使用此解密工具^_^ *\n");
printf("by:hackest[E.S.T] *\n");
printf("欢迎访问:http://forum.eviloctal.com *\n");
printf("******************************************\n");
printf("\n");
printf("请输入密码长度:");
scanf("%d",&any);
encode=(char *)malloc(any+1);
decode=(char *)malloc(any+1);
getchar();
printf("请输入密码密文:");
for(i=0;i
if(encode=='\n')break;
decode=encode-i-1;
}
encode='\0';
decode='\0';
printf("密码解密明文为:%s\n",decode);
return 0;
}
运行示例:

点此下载此工具
File: C:\decode.exe
Size: 15266 bytes
Modified: 星期六 2007年3月3日, 0:57:40
MD5: 7DD40B259B36694D9D20001460CE4F09
SHA1: A27D2A0ACF4C97044B2C39EF544F54EFAEC5339E
CRC32: C84864A1
本文纯属个人意见,如有错漏,还望批评指正!
如若转载,请注明来源,保留版权,谢谢!
Posted in 雕虫小技 | Tags: c写的一个解密ascii加密的小工具
COMMENT[12]

教菜鸟来玩DedeCms V4.0注入漏洞
MySQL数据导入报错一例解决篇
![[H.S.T.]十六进制信息安全网官方讨论组](http://www.hackest.cn/logo1.gif)

var i:integer;
s:string;
begin
s:=Edit1.Text;
if s<>'' then
begin
for i:=1 to Length(s) do
s[i]:=chr(ord(s[i])+i);
Edit2.Text:=s;
end;
不习惯使用CMD介面,郁闷,还是比较喜欢用户介面
用指针性能要好点,在专业水准的C++程序中你能常见
import java.util.Scanner;
public class Test
{
public static void main(String[] args) throws Exception
{
Scanner sc = new Scanner(System.in);
System.out.println("输入:");
String str = sc.nextLine();
char[] arr = str.toCharArray();
StringBuilder bsHackest = new StringBuilder();
for (int i = 0;i<arr.length;i++)
{
bsHackest.append((char)(arr[i] - (i+1)));
}
System.out.println("原文:"+bsHackest);
}
}
偶不能跟您比呀……
#include<string.h>
int main()
{
char s[256]={'\n'};
unsigned int i;
puts("input:");
gets(s);
for(i=0;i<strlen(s);i++)
{
printf("%c",s[i]-i-1);
}
return 0;
}
你看我,printf了多少人性化的文字,NND