All pastes #205843 Raw Edit

Someone

public text v1 · immutable
#205843 ·published 2006-10-17 02:21 UTC
rendered paste body
/*
 * TEA.java
 *
 * Created on October 16, 2006, 10:06 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package net.forcedata.common;

import java.io.*;

public class TEA {
  
  int[] key_array = new int[4];
  int[] num_array = new int[2];
  int[] encrypted_array = new int[2];
  int sum = 0;
  int iteration_step = 32;
  int delta = 0x9E3779B9;
  
  
  public TEA() {
    key_array[0] = 442323;
    key_array[1] = 1231;
    key_array[1] = 5664;
    key_array[1] = 674323;
//unsigned int32 key[4] = {442323,1231,5664,674323};
    
    
  }
  
  
  
  public void encipher() {
    int a,b,c,d,y, z;
    int n = iteration_step;
    {
      a = key_array[0];
      b = key_array[1];
      c = key_array[2];
      d = key_array[3];
      y = num_array[0];
      z = num_array[1];
    }
    while (n-- > 0) {
      sum += delta;
      y += (z << 4) + (int)Math.pow(a,z) + (int)Math.pow(sum,(z >>> 5)) + b;
      z += (y << 4) + (int)Math.pow(c,y) + (int)Math.pow(sum,(y >>> 5)) + d;
    }
    encrypted_array[0] = y;
    encrypted_array[1] = z;
    
    System.out.println("*************After encryption************");
    System.out.println(y + "" + z);
  }
  
  public void decipher() {
    int sum = 0xC6EF3720;
    int a,b,c,d,y, z;
    int n = iteration_step;
    {
      a = key_array[0];
      b = key_array[1];
      c = key_array[2];
      d = key_array[3];
      y = encrypted_array[0];
      z = encrypted_array[1];
    }
    while (n-- > 0) {
      z -= (y << 4) + (int)Math.pow(c,y) + (int)Math.pow(sum,(y >>> 5)) + d;
      y -= (z << 4) + (int)Math.pow(a,z) + (int)Math.pow(sum,(z >>> 5)) + b;
      sum -= delta;
    }
    System.out.println("*************After decryption************");
    System.out.println(y + "" + z);
  }
  /*
  public void getKey() {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int count = 0, idx = 0;
    try {
      String str = br.readLine();
      while (count <= 3) {
        key_array[count++] = Integer.parseInt(str.substring(idx, idx + 2));
        idx += 2;
      }
    } catch (IOException ex) {
      ex.printStackTrace();
    } catch (NumberFormatException ex) {
      ex.printStackTrace();
    }
  }
   */
  public void getNumber(String number) {
    //BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int count = 0, idx = 0;
    try {
      //String number = br.readLine();
      
      while (count <= 1) {
        num_array[count++] = Integer.parseInt(number.substring(idx, idx + 2));
        idx += 2;
      }
    }
    /*
    catch (IOException ex) {
      ex.printStackTrace();
    }
     */
    catch (NumberFormatException ex) {
      ex.printStackTrace();
    }
  }
  
  /*
  public static void main(String[] args) {
    TEA tea = new TEA();
    System.out.println("Enter the key");
    tea.getKey();
    System.out.println("Enter the number");
    tea.getNumber();
    tea.encipher();
    tea.decipher();
  }
   *
   *
   */
}