Transfer to original http://hw1287789687.iteye.com/blog/2153894
(1)
Key:idea
Value:61156-yrn2m-5mncn-nz8d2-7b4ew-u12l4
(2)
Key:huangwei
Value:97493-g3a41-0so24-w57li-y2ugi-jgtu2
(3)
key:hkl520
Value:34423-vzyxd-fqxz7-o6i7u-j3zk8-r7v62
(4)
Key:intelligent
Value:40957-eg6o9-2915l-cf1rp-57iqj-y6vz3
(5)
Key:tommy
Value:49164-ypnvl-oxuzl-xiwm4-z9ohc-lf053
(6)
Key:whuanghk
Value:98220-in97r-tv1id-2japo-oxzeo-lam70
(7)
Key:itey
Value:91758-t1cla-c64f3-t7x5r-a7ydo-crsn1
Here's the code for cracking:
Java code
- Import Java.math.BigInteger;
- Import Java.util.Date;
- Import Java.util.Random;
- Import java.util.zip.CRC32;
- Public class keygen
- {
- /**
- * @param s
- * @param i
- * @param bytes
- * @return
- */
- public static short GETCRC (String s, int i, byte bytes[])
- {
- CRC32 CRC32 = new CRC32 ();
- if (s! = null)
- {
- For (int j = 0; j < S.length (); j + +)
- {
- char C = S.charat (j);
- Crc32.update (c);
- }
- }
- Crc32.update (i);
- Crc32.update (i >> 8);
- Crc32.update (i >> 16);
- Crc32.update (i >> 24);
- For (int k = 0; k < bytes.length- 2; k++)
- {
- byte byte0 = bytes[k];
- Crc32.update (BYTE0);
- }
- return (short) (int) crc32.getvalue ();
- }
- /**
- * @param BigInteger
- * @return String
- */
- public static String encodegroups (BigInteger BigInteger)
- {
- BigInteger beginner1 = biginteger.valueof (0x39aa400l);
- StringBuilder sb = new StringBuilder ();
- For (int i = 0; Biginteger.compareto (biginteger.zero)! = 0; i++)
- {
- Int J = biginteger.mod (Beginner1). Intvalue ();
- String S1 = Encodegroup (j);
- if (i > 0)
- {
- Sb.append ("-");
- }
- Sb.append (S1);
- BigInteger = Biginteger.divide (beginner1);
- }
- return sb.tostring ();
- }
- /**
- * @param i
- * @return
- */
- public static String encodegroup (int i)
- {
- StringBuilder sb = new StringBuilder ();
- For (int j = 0; j < 5; j + +)
- {
- int k = i% 36;
- Char C;
- if (K < ten)
- {
- c = (char) (+ + k);
- }
- Else
- {
- c = (char) ((+ + k)- 10);
- }
- Sb.append (c);
- I/= 36;
- }
- return sb.tostring ();
- }
- /**
- * @param name
- * @param days
- * @param ID
- * @param prtype
- * @return
- */
- public static string Makekey (string name, int days, int id)
- {
- ID%= 100000;
- byte bkey[] = new byte[12];
- bkey[0] = (byte) 1; //Product Type:intellij idea is 1
- bkey[1] = 14; //version
- Date d = new Date ();
- Long ld = (D.gettime () >> 16);
- bkey[2] = (byte) (LD & 255);
- bkey[3] = (byte) ((LD >> 8) & 255);
- bkey[4] = (byte) ((LD >> + ) & 255);
- bkey[5] = (byte) ((LD >> ) & 255);
- Days &= 0xFFFF;
- bkey[6] = (byte) (Days & 255);
- bkey[7] = (byte) ((Days >> 8) & 255);
- bkey[8] = 105;
- bkey[9] =-59;
- bkey[] = 0;
- bkey[] = 0;
- int w = GETCRC (name, id% 100000, bkey);
- bkey[] = (byte) (W & 255);
- bkey[] = (byte) ((w >> 8) & 255);
- BigInteger POW = new BigInteger ("89126272330128007543578052027888001981", 10);
- BigInteger mod = new BigInteger ("86f71688cdd2612ca117d1f54bdae029", 16);
- BigInteger K0 = new BigInteger (Bkey);
- BigInteger K1 = k0.modpow (pow, mod);
- String S0 = integer.tostring (ID);
- String sz = "0";
- While (S0.length ()! = 5)
- {
- S0 = Sz.concat (S0);
- }
- S0 = S0.concat ("-");
- String S1 = encodegroups (k1);
- S0 = S0.concat (S1);
- return s0;
- }
- public static void Main (string[] args)
- {
- if (args.length = = 0)
- {
- System.err.printf ("* * * Usage:%s name%n", keygen. Class.getcanonicalname ());
- System.exit (1);
- }
- Random r = new Random ();
- System.out.println (Makekey (args[0], 0, R.nextint (100000)));
- }
- }
Save directly as Keygen.java
D:\develop>javac Keygen.java
D:\develop>java keygen username
67937-qf06h-9x5jw-hwyvn-0g2g3-wvdl1
Online Registration Machine
Http://appcode.aliapp.com
IntelliJ Idea 14 Registration code