Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: Freenet/client/Scrambler.java


1   package Freenet.client;
2   
3   public class Scrambler
4   {
5       public static void main(String[] args)
6       {
7     String p = "plaintext";
8     System.out.println("Input: "+p);
9     String[] r = scramble(p);
10    System.out.println("Output: "+unscramble(r[0], r[1]));
11      }
12  
13      public static String[] scramble(String in)
14      {
15    StringBuffer out1 = new StringBuffer(in.length());
16    StringBuffer out2 = new StringBuffer(in.length());
17    java.util.Random r = new java.util.Random();
18    for (int x=0; x<in.length(); x++)
19        {
20      int rand = (char) r.nextInt();
21      out1.append((char) (rand ^ ((int) in.charAt(x))));
22      out2.append((char) rand);
23        }
24    String[] ret = new String[2];
25    ret[0] = out1.toString();
26    ret[1] = out2.toString();
27    return ret;
28      }
29  
30      public static String unscramble(String a, String b)
31      {
32    if (a.length() != b.length())
33        throw new RuntimeException("Arguments to unscramble are not same length");
34    StringBuffer out = new StringBuffer(a.length());
35    for (int x=0; x<a.length(); x++)
36        {
37      out.append((char) (a.charAt(x) ^ b.charAt(x)));
38        }
39    return out.toString();
40      }
41  }