Шифрование и расшифровка файла с помощью Java

898
Шифрование и расшифровка файла с помощью Java
Шифрование и расшифровка файла с помощью Java

В области криптографии шифрование — это процесс превращения открытого текста или информации в шифротекст, или текст, который может быть расшифрован только предполагаемым получателем. Шифр — это термин, используемый для описания алгоритма шифрования. Он обеспечивает безопасность коммуникационных сетей и помогает предотвратить незаконный доступ к информации о клиентах, электронной почте и другим важным данным. В настоящее время существуют различные решения, поэтому мы можем выбрать лучший безопасный алгоритм, удовлетворяющий нашим потребностям.

Шифрование: Шифрование — это преобразование открытого текста в шифрованный, доступ к которому могут получить только авторизованные пользователи с правильным криптографическим ключом, шифрование — это компьютерный процесс. Шифрование, которое является важной частью цифровой революции, просто изменяет читаемые данные в другую форму, которую могут расшифровать и просмотреть только лица, имеющие соответствующий пароль.

Расшифровка: Процесс возвращения бессмысленного сообщения (шифротекста) к его первоначальному формату называется расшифровкой (открытого текста). Для его функционирования применяется алгоритм обратного преобразования по сравнению с тем, который использовался для шифрования данных. Информация должна быть расшифрована с использованием того же ключа, чтобы вернуть ее в исходное состояние.

При симметричном шифровании ключ используется как отправителем, так и получателем для шифрования и дешифрования. В случае симметричного шифрования и дешифрования ключ, используемый отправителем и получателем, одинаков. Теперь давайте рассмотрим пример симметричного шифрования и дешифрования.

Пример
Предположим, что используемый здесь ключ равен 7

Сторона отправителя:

Clear text :  G E E K
Key:          7 7 7 7
Cipher text:  N L L R

Принимающая сторона:

Cipher text:   N L L R
Key:           7 7 7 7 
Decipher text: G E E K
/*package whatever //do not write package name here */

// Java code of above approach
// Importing required packages
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;

public class GFG {
    public static void main(String[] args)
    {

        try {
            // Generating objects of KeyGenerator &
            // SecretKey
            KeyGenerator keygenerator
                = KeyGenerator.getInstance("DES");
            SecretKey myDesKey = keygenerator.generateKey();

            // Creating object of Cipher
            Cipher desCipher;
            desCipher = Cipher.getInstance("DES");

            // Creating byte array to store string
            byte[] text
                = "No body can see me.".getBytes("UTF8");

            // Encrypting text
            desCipher.init(Cipher.ENCRYPT_MODE, myDesKey);
            byte[] textEncrypted = desCipher.doFinal(text);

            // Converting encrypted byte array to string
            String s = new String(textEncrypted);
            System.out.println(s);

            // Decrypting text
            desCipher.init(Cipher.DECRYPT_MODE, myDesKey);
            byte[] textDecrypted
                = desCipher.doFinal(textEncrypted);

            // Converting decrypted byte array to string
            s = new String(textDecrypted);
            System.out.println(s);
        }
        catch (Exception e) {
            System.out.println("Exception");
        }
    }
}

Вывод

�1g��^�(����/�J��K:
No body can see me.