您的位置:首页 > 编程语言 > Java开发

java编的一个access2000密码破解程序

2005-03-02 12:48 417 查看
思路来源于破解Access的密码
我只是用java改写了而已,不过还是增强了对RandonAccessFile,byte类型的认识

代码如下
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/*
* Created on 2005-3-2
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/

/**
* @author
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class AccessCrack {

public static void main(String[] args) {
try {
byte[] encrypFlag=new byte[1];
byte[] passStrTemp=new byte[26];
byte[] passSource2k={(byte)0xa1,(byte)0xec,0x7a,(byte)0x9c,(byte)0xe1,(byte)0x28,(byte)0x34,(byte)0x8a,(byte)0x73,(byte)0x7b,(byte)0xd2,(byte)0xdf,(byte)0x50};

RandomAccessFile raf=new RandomAccessFile(new File("c://crack//Depot.mdb"),"r");
raf.seek(0x62);
raf.read(encrypFlag,0,1);
raf.seek(0x42);
raf.read(passStrTemp,0,26);
char t1;
StringBuffer MdbPassword=new StringBuffer();
for(int j=0;j<13;j++)
{
int t=1^3;
if(j%2==0)
t1=(char)(((byte)0x13)^encrypFlag[0]^passStrTemp[j*2]^passSource2k[j]);
//每隔一个字节就与加密标志相异或。这里的加密标志为0x13
else
t1=(char)(passStrTemp[j*2]^passSource2k[j]);
MdbPassword=MdbPassword.append(t1);
}
System.out.println(MdbPassword.toString());

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: