⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qqcode.java

📁 一个使用Java编写的QQ批量登录器
💻 JAVA
字号:
import java.security.*;
import java.security.spec.*;
public class QQCode
{
	public static final char[] HexDigits=
	{
		'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 
		'a', 'b', 'c', 'd','e', 'f'
	};
	public static final char[] Code=
	{		
		'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
		'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
		'0','1','2','3','4','5','6','7','8','9','+','/'
	};
	
	private byte[] bytes;
	private String qqCode;
	private String md5;
	private String code;
	
	public QQCode(String code)
	{
		this.code=code;
	}
	public QQCode(byte[] codeByte)
	{
		bytes=codeByte;
	}
	public final byte[] getHashBytes()
	{
		try
	    {	    	
			byte[] strTemp = code.getBytes();
			MessageDigest mdTemp = MessageDigest.getInstance("MD5");
			mdTemp.update(strTemp);
			bytes = mdTemp.digest();
			return bytes;
	    }
	    catch(Exception ee)
	    {
	    	return null;
	    }
	}
	public final String getQQCode()
	{
		if(bytes==null)
		{
			qqCode=null;
			return qqCode;
		}
		qqCode="";
		String[] binary=new String[bytes.length];
		for(int i=0;i<bytes.length;i++)
	    {
	    	binary[i]=toBinary(bytes[i]);
	    }
		String[] base=new String[(int)Math.ceil(binary.length*8.0/6.0)];
		int space=binary.length%3;
		int i=0;
		StringBuffer text=new StringBuffer(base.length*8);
		for(i=0;i<binary.length;i++)
	    {
	    	text.append(binary[i]);
	    }
	    for(i=0;i<base.length-1;i++)
	    {
	    	base[i]="00"+text.substring(i*6,i*6+6);
	    }
	    base[i]="00"+text.substring(i*6);
	    while(base[i].length()<8)
	    	base[i]+="0";
	    for(String s : base)
	    {
	    	qqCode+=Code[toByte(s)];
	    }
	    if(space!=0&&space!=3)
	    for(i=0;i<3-space;i++)
	    {
	    	qqCode+="=";
	    }
		return qqCode;
	}
	public final String getMD5()
	{
		if(bytes==null)
			return null;
		char str[]=new char[bytes.length*2];
		int k=0;
		for(int i=0;i<bytes.length;i++)
		{
			str[k++]=HexDigits[bytes[i]>>>4&0xF];
			str[k++]=HexDigits[bytes[i]&0xF];
		}
		md5=new String(str);
		return md5;
	}
	private String toBinary(byte b)
	{
		byte display=(byte)(1<<7);
		StringBuffer buf=new StringBuffer(8);
		for(int j=1;j<9;j++)
	    {
	    	buf.append((display&b)==0?"0":"1");
	    	b<<=1;
	    }
    	return buf.toString();
	}
	private byte toByte(String string)
	{
		byte result=0;
		for(int i=0;i<string.length();i++)
	    {
	    	if(string.charAt(i)=='1')
	    		result+=(byte)(Math.pow(2,7-i));
	    }
	    return result;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -