Простой однострочный, собственный метод шифрования / дешифрования в Java - PullRequest
6 голосов
/ 18 ноября 2011

Существует ли в Java простой и простой способ зашифровать / расшифровать строку с помощью ключа? Мне все равно, какой тип шифрования (AES, DES и т. Д.), Я просто забочусь о том, что он связан с ключом и не может быть легко взломан.

В идеале я хотел бы, чтобы это было однострочное решение, вот так:

String encryptedString = NativeEncryptionClass.encrypt("this is the data", "key123");

Спасибо

Ответы [ 5 ]

3 голосов
/ 18 ноября 2011

Не уверен, что вы можете сделать это в [удобочитаемом] однострочнике, но вы можете относительно легко добиться простого симметричного шифрования - взгляните на следующий пример:

PrivateExample с использованием DES

В прошлом я пользовался библиотекой Bouncy Castle для хорошего эффекта.

2 голосов
/ 30 июня 2013

Может быть, вам стоит попробовать простое XOR шифрование

2 голосов
/ 18 ноября 2011

Если вы имеете в виду родной язык, не зависящий от платформозависимых библиотек, возможно jasypt может быть вам интересен.

1 голос
/ 18 ноября 2011

Хорошо, возможно, это не «одна строка», но это кажется достаточно простым:

используйте класс шифра Java. смотрите здесь ... (на этой странице есть другие примеры ...)

http://download.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#BlowKeyEx

0 голосов
/ 02 октября 2015
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class SimpleMD5Example {

    public static void main(String[] args) {
        String passwordToHash = "0";
        String generatedPassword = null;
        try {
            // Create MessageDigest instance for MD5
            MessageDigest md = MessageDigest.getInstance("MD5");
            // Add password bytes to digest
            md.update(passwordToHash.getBytes());
            // Get the hash's bytes
            byte[] bytes = md.digest();
            System.out.println(bytes);

            // This bytes[] has bytes in decimal format;
            // Convert it to hexadecimal format
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < bytes.length; i++) {
                sb.append(Integer.toString((bytes[i] & 0xff), 16).substring(1));

            }
            // Get complete hashed password in hex format
            generatedPassword = sb.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        System.out.println(generatedPassword);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...