Michael Rogers wrote:
> Matthew Toseland wrote:
>> Base32 this is 35 chars; the base32 may be easier, and is certainly shorter,
>> but this would be a nice option if you port the code to java. :)
>
> Yeah, base32 would definitely be more practical but I just love the idea
> of using random poetry to set up a darknet. :-) I'll have a crack at
> porting it to Java when I get a minute.
>
> Cheers,
> Michael
This is something to start with. It assumes to find the words in the
"words-#.dic" files where # represents the
order of the words... so its probably not as clean as you'd want it to be.
Also i think the problem would be with loading the file into the memory, when
it will get large enough to be
representing the true key i think you'll be having some serious out of memory
issues.
- Volodya
--
http://freedom.libsyn.com/ Voice of Freedom, Radical Podcast
http://eng.anarchopedia.org/ Anarchopedia, A Free Knowledge Portal
"None of us are free until all of us are free." ~ Mihail Bakunin
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
public class PoemKey {
public static int WORDS_PER_KEY = 4;
public static int BYTES_PER_WORD = 2;
private static String[][] words;
static
{
words = new String[WORDS_PER_KEY][];
final int numOfWords = (int)Math.pow(2, BYTES_PER_WORD * 8);
for(int i=0; i<WORDS_PER_KEY; i++)
{
words[i] = new String[numOfWords];
try
{
BufferedReader fin = new BufferedReader(new FileReader("words-"+i+".dic"));
for(int j=0; j < numOfWords; j++)
{
words[i][j] = fin.readLine();
}
fin.close();
}
catch(FileNotFoundException e)
{
//Well i don't really know what you'd want to do then.
}
catch(IOException e)
{
//Well i don't really know what you'd want to do then.
}
}
}
public static int[] poemToKey(String poem[])
{
int result[] = new int[WORDS_PER_KEY];
return result;
}
public static String[] keyToPoem(int[] key)
{
String result[] = new String[WORDS_PER_KEY];
for(int i=0; i<WORDS_PER_KEY; i++)
{
result[i] = words[i][key[i]];
}
return result;
}
public static void main(String args[])
{
int key[] = new int[WORDS_PER_KEY];
System.out.print("The random key with "+WORDS_PER_KEY+" blocks "+BYTES_PER_WORD+" bytes each is: ");
for(int i=0; i<WORDS_PER_KEY; i++)
{
key[i]=(int)(Math.random()*8*BYTES_PER_WORD);
System.out.print(Integer.toHexString(key[i])+" ");
}
System.out.println("");
System.out.print("The 'Poem' key is: ");
String[] poem = keyToPoem(key);
for(int i=0; i<WORDS_PER_KEY; i++)
{
System.out.print(poem[i]+" ");
}
System.out.println("");
}
}
_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl