Need a unique gift idea?
A Pastebin account makes a great Christmas gift
SHARE
TWEET

Untitled

a guest Mar 14th, 2018 55 Never
Upgrade to PRO!
ENDING IN00days00hours00mins00secs
 
  1. public class ISAAC {
  2.  
  3.     public ISAAC(int ai[]) {
  4.   cryptArray = new int[256];
  5.   keySetArray = new int[256];
  6.   System.arraycopy(ai, 0, keySetArray, 0, ai.length);
  7.   initializeKeySet();
  8.     }
  9.  
  10.     public int getNextKey() {
  11.   if (keyArrayIdx-- == 0) {
  12.     generateNextKeySet();
  13.     keyArrayIdx = 255;
  14.   }
  15.   return keySetArray[keyArrayIdx];
  16.     }
  17.  
  18.     public void generateNextKeySet() {
  19.   cryptVar2 += ++cryptVar3;
  20.   for (int i = 0; i < 256; i++) {
  21.     int j = cryptArray[i];
  22.     if ((i & 3) == 0) {
  23.     cryptVar1 ^= cryptVar1 << 13;
  24.     } else if ((i & 3) == 1) {
  25.     cryptVar1 ^= cryptVar1 >>> 6;
  26.     } else if ((i & 3) == 2) {
  27.     cryptVar1 ^= cryptVar1 << 2;
  28.     } else if ((i & 3) == 3) {
  29.     cryptVar1 ^= cryptVar1 >>> 16;
  30.     }
  31.     cryptVar1 += cryptArray[i + 128 & 0xff];
  32.     int k;
  33.     cryptArray[i] = k = cryptArray[(j & 0x3fc) >> 2] + cryptVar1 + cryptVar2;
  34.     keySetArray[i] = cryptVar2 = cryptArray[(k >> 8 & 0x3fc) >> 2] + j;
  35.   }
  36.  
  37.     }
  38.  
  39.     public final void initializeKeySet() {
  40.   int i1;
  41.   int j1;
  42.   int k1;
  43.   int l1;
  44.   int i2;
  45.   int j2;
  46.   int k2;
  47.   int l = i1 = j1 = k1 = l1 = i2 = j2 = k2 = 0x9e3779b9;
  48.   for (int i = 0; i < 4; i++) {
  49.     l ^= i1 << 11;
  50.     k1 += l;
  51.     i1 += j1;
  52.     i1 ^= j1 >>> 2;
  53.     l1 += i1;
  54.     j1 += k1;
  55.     j1 ^= k1 << 8;
  56.     i2 += j1;
  57.     k1 += l1;
  58.     k1 ^= l1 >>> 16;
  59.     j2 += k1;
  60.     l1 += i2;
  61.     l1 ^= i2 << 10;
  62.     k2 += l1;
  63.     i2 += j2;
  64.     i2 ^= j2 >>> 4;
  65.     l += i2;
  66.     j2 += k2;
  67.     j2 ^= k2 << 8;
  68.     i1 += j2;
  69.     k2 += l;
  70.     k2 ^= l >>> 9;
  71.     j1 += k2;
  72.     l += i1;
  73.   }
  74.  
  75.   for (int j = 0; j < 256; j += 8) {
  76.     l += keySetArray[j];
  77.     i1 += keySetArray[j + 1];
  78.     j1 += keySetArray[j + 2];
  79.     k1 += keySetArray[j + 3];
  80.     l1 += keySetArray[j + 4];
  81.     i2 += keySetArray[j + 5];
  82.     j2 += keySetArray[j + 6];
  83.     k2 += keySetArray[j + 7];
  84.     l ^= i1 << 11;
  85.     k1 += l;
  86.     i1 += j1;
  87.     i1 ^= j1 >>> 2;
  88.     l1 += i1;
  89.     j1 += k1;
  90.     j1 ^= k1 << 8;
  91.     i2 += j1;
  92.     k1 += l1;
  93.     k1 ^= l1 >>> 16;
  94.     j2 += k1;
  95.     l1 += i2;
  96.     l1 ^= i2 << 10;
  97.     k2 += l1;
  98.     i2 += j2;
  99.     i2 ^= j2 >>> 4;
  100.     l += i2;
  101.     j2 += k2;
  102.     j2 ^= k2 << 8;
  103.     i1 += j2;
  104.     k2 += l;
  105.     k2 ^= l >>> 9;
  106.     j1 += k2;
  107.     l += i1;
  108.     cryptArray[j] = l;
  109.     cryptArray[j + 1] = i1;
  110.     cryptArray[j + 2] = j1;
  111.     cryptArray[j + 3] = k1;
  112.     cryptArray[j + 4] = l1;
  113.     cryptArray[j + 5] = i2;
  114.     cryptArray[j + 6] = j2;
  115.     cryptArray[j + 7] = k2;
  116.   }
  117.  
  118.   for (int k = 0; k < 256; k += 8) {
  119.     l += cryptArray[k];
  120.     i1 += cryptArray[k + 1];
  121.     j1 += cryptArray[k + 2];
  122.     k1 += cryptArray[k + 3];
  123.     l1 += cryptArray[k + 4];
  124.     i2 += cryptArray[k + 5];
  125.     j2 += cryptArray[k + 6];
  126.     k2 += cryptArray[k + 7];
  127.     l ^= i1 << 11;
  128.     k1 += l;
  129.     i1 += j1;
  130.     i1 ^= j1 >>> 2;
  131.     l1 += i1;
  132.     j1 += k1;
  133.     j1 ^= k1 << 8;
  134.     i2 += j1;
  135.     k1 += l1;
  136.     k1 ^= l1 >>> 16;
  137.     j2 += k1;
  138.     l1 += i2;
  139.     l1 ^= i2 << 10;
  140.     k2 += l1;
  141.     i2 += j2;
  142.     i2 ^= j2 >>> 4;
  143.     l += i2;
  144.     j2 += k2;
  145.     j2 ^= k2 << 8;
  146.     i1 += j2;
  147.     k2 += l;
  148.     k2 ^= l >>> 9;
  149.     j1 += k2;
  150.     l += i1;
  151.     cryptArray[k] = l;
  152.     cryptArray[k + 1] = i1;
  153.     cryptArray[k + 2] = j1;
  154.     cryptArray[k + 3] = k1;
  155.     cryptArray[k + 4] = l1;
  156.     cryptArray[k + 5] = i2;
  157.     cryptArray[k + 6] = j2;
  158.     cryptArray[k + 7] = k2;
  159.   }
  160.  
  161.   generateNextKeySet();
  162.   keyArrayIdx = 256;
  163.     }
  164.     private int keyArrayIdx;
  165.     private int keySetArray[], cryptArray[];
  166.     private int cryptVar1, cryptVar2, cryptVar3;
  167. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top