2009-10-15 7 views
0

Как бы шифровать строку, используя схему XTEA в Java.Java-шифрование с использованием XTEA

Благодаря

public class run { 
     public static void main(String[] args) throws Exception{ 

      XTEA2 x= new XTEA2("keykey"); 
      String s = "hi there"; 
      byte[] theBytes = s.getBytes(); 


      System.out.println("Plaintext: " + new String(theBytes)); 

      x.encrypt(theBytes); //theBytes now contains the encrypted data 

      System.out.println("Crypo Text: " + new String(theBytes)); 


      x.decrypt(theBytes); //theBytes now contains the decrypted data 

      System.out.println("Decrypted: " + new String(theBytes)); 
      String str = new String(theBytes); //decrypted String 




     } 
    } 
| 

работает, если он правильно проложенные. Спасибо ребята

+0

Что такое downvotes? Это законный вопрос. – erickson

+0

-1 Для того, чтобы не предоставлять достаточную информацию о том, что у него уже есть. Я предполагаю, что вы это заметили. По данному вопросу мой ответ был верным (ссылка на полную реализацию XTEA, используемую базой данных H2), но в свою очередь у меня есть нисходящая линия. – OscarRyz

+1

Откуда вы знаете, что это от него? Я спрашиваю, потому что есть много педантов, скрывающихся вокруг этого нисходящего голоса, кто упоминает тот факт, что криптокод на самом деле * может быть написан за пределами башни из слоновой кости. – erickson

ответ

1

Во-первых, вам нужен этот метод, чтобы преобразовать строку в массив байтов:

public static byte[] convertStringToByteArray(String stringToConvert) { 
    byte[] theByteArray = stringToConvert.getBytes(); 

    return theByteArray; 
} 

затем используйте this code из проекта db4o, и вызывать его методы, как:

для шифрования , и

decrypt(theBytes); //theBytes now contains the decrypted data 
String str = new String(theBytes); //decrypted String 
0

Это:

http://www.google.com/search?q=java+encryption+XTEA дал мне это

http://en.wikipedia.org/wiki/XTEA, который, наконец, дал мне это:

http://code.google.com/p/h2database/source/browse/trunk/h2/src/main/org/h2/security/XTEA.java

который я думаю, что вы хотите

EDIT

Я не знаю, прочитали ли вы это уже, но здесь оно идет.

Java security API обеспечивает architecture необходимы для шифрования

Вы получаете Cypher, используя Cipher.getInstace() метод:

как

Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding"); 

Но по умолчанию Java не обеспечивает шифр для XTEA

Однако вам даны средства для регистрации your own.

У меня никогда не было необходимости следить за полным процессом, я думаю, вам нужно выполнить несколько интерфейсов и зарегистрировать свою реализацию.

Если вам нужно зайти так далеко, вы можете использовать реализацию, упомянутую ранее. Это тот, который используется H2 DB.

Надеюсь, это поможет.

2

После поиска в google я выяснил, что вы можете вручную реализовать схему XTEA с использованием интерфейса BlockCipher.

H2 Database реализован вариант с этим интерфейсом, который вы можете найти здесь: XTEA.JAVA on code.google.com

Проблема здесь состоит в том, что вам нужно изменить шифрования/дешифрования (байт [], байт [], Int) методы, соответствующие вашим потребностям.

Смежные вопросы