| Home >> All >> Freenet >> [ client Javadoc ] |
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 }