All pastes #710077 Raw Edit

Denisio

public java v1 · immutable
#710077 ·published 2007-09-25 06:16 UTC
rendered paste body
public class CryptClass{    private int oper_offset, number_offset, sum_offset, pass_offset, ph_imei_offset, rms_imei_offset;    private int block_length = 200;        public CryptClass(int _oper_offset, int _number_offset, int _sum_offset, int _pass_offset, int _ph_imei_offset, int _rms_imei_offset)        {        oper_offset = _oper_offset;        number_offset = _number_offset;        sum_offset = _sum_offset;        pass_offset = _pass_offset;        ph_imei_offset = _ph_imei_offset;        rms_imei_offset = _rms_imei_offset;    }            public String bytes2str(byte[] b)    {        int q;        String res = "";        for (q=0; q<b.length; q++)        {            res += (char)b[q];        }        return res;    }        private void set_param(byte[] b, String s, int offset)    {        int q;        for (q=0; q<s.length(); q++)        {            b[offset + q] = (byte)s.charAt(q);        }        b[offset + s.length()] = (byte)0;    }        public String toHex(int i)    {        String a = "0123456789ABCDEF";        return "" + a.charAt((int)(i / 16)) + a.charAt(i%16);    }    private int calc_bit(byte b)    {	int res = (byte)(b/3);	byte bit_k = 2;	while (b > 0)	{		if ((b & 1) == 1) 		{			res = bit_k*res + 1;			bit_k = 2;		}		else bit_k = 1;		b = (byte)(b >> 1);	}	return res;    }           public byte[] getBlock2(String rmsKey, String oper, String number, String sum, String pass, String ph_imei, String rms_imei)    {        String res = "";        byte[] b8 = new byte[8], b = new byte[block_length], xor_b= new byte[block_length], xor_bb = new byte[block_length];        Date currentDate = new java.util.Date();        Random r = new java.util.Random();        int w;        // fill block with garbage        for (int q=0; q<block_length; q++)        {            b[q] = (byte)(r.nextInt() % 255);        }        // set parameters on different offsets at buffer        set_param(b, oper, oper_offset);        set_param(b, number, number_offset);        set_param(b, sum, sum_offset);        set_param(b, pass, pass_offset);        set_param(b, ph_imei, ph_imei_offset);        set_param(b, rms_imei, rms_imei_offset);               int k_sc = 0;        int bit_no = 0;        for (int q=0; q<block_length; q++)        {            if (bit_no > 1000) bit_no -= 987;            if (k_sc == rmsKey.length()) k_sc = 0;            xor_b[q] = (byte)((b[q] ^ rmsKey.charAt(k_sc++)) ^ (byte)(bit_no % 255));            bit_no += calc_bit(xor_b[q]);        }        for (int q=0; q<block_length; q++)        {            res += toHex((int)(xor_b[q]) + 128);        }        return res.getBytes();    }    }