今天帮一个朋友做的网站忘记后台密码了,程序是深喉咙asp版本的,打开原版的数据库一看密码字段是bfpms,登陆是用admin登陆的,网上搜索了下原来是通过ASCII加密的,很别致的加密方法,呵呵,下面提供一个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
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