LINUX.ORG.RU

Crypt на Java


0

0

Доброго времени суток!

Как использовать шифрование/дешифрование строк в Java?
Может это чисто ламерский вопрос, но я никак не могу найти ответ на него.

Это смотря как шифровать :) Если XOR, то можно нагло "string".getBytes() и вперед. Для более продвинутого шифрования - javax.crypto.*

phoenix ★★★★
()
Ответ на: комментарий от phoenix

Я в курсе про javax.crypto.* Только вот не совсем понятно как именно его использовать (например, для MDA5-шифрования)...

daemon73 ★★
() автор топика
Ответ на: комментарий от daemon73

RTFM ;) Есть небольшой пример:
-------------
public void encryptFile(File input, File output, String skey) throws Exception
{
    FileOutputStream fos = new FileOutputStream(output);
    Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
    SecretKeySpec key = new SecretKeySpec(skey.getBytes(), "DES");
    cipher.init(Cipher.ENCRYPT_MODE , key);
    CipherOutputStream cos = new CipherOutputStream(fos, cipher);
    GZIPOutputStream gos = new GZIPOutputStream(cos);
    BufferedOutputStream bos = new BufferedOutputStream(gos, 2048);

    FileInputStream fis = new FileInputStream(input);
    BufferedInputStream bis = new BufferedInputStream(fis, 2048);

    byte abyte0[] = new byte[2048];
    int i;
    do {
        i = bis.read(abyte0, 0, abyte0.length);
        bos.write(abyte0, 0, i);
    } while(i != -1 && i==abyte0.length );
    bis.close();
    bos.flush();
    bos.close();
}
--------------

phoenix ★★★★
()
Ответ на: комментарий от phoenix

Вот еще MD5:

    private static String MD5_hash(String data) {
        MessageDigest md5 = null;
        try {
            md5 = MessageDigest.getInstance("MD5");
        }
        catch(Exception e) {
            System.err.println("Error using MD5 algorithm with MessageDigest class!");
            System.exit(1);
        }

        md5.update(data.getBytes());
        return new String(md5.digest());
    }


Только оно что-то несовместимое по-моему дает с нормальными md5 утилитами. Что-то там с с тем что new String() создает что-то хексодецимальное или наоборот. ХЕЗ - мне надо было исключительно внутри Жабы.

А вообще я тут недавно нашел sprintf() на Яве ;)

ByteArrayOutputStream lol = new ByteArrayOuputStream();
PrintStream wtf = new PrintStream(st);
st.printf("bla: ", %d\n", 2);
String omg = lol.toString();

:)

Java: Adding lines of code to your application 

dissident ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.