Зашифровать и расшифровать строковый файл с помощью Java

Опубликовано: 22 Февраля, 2023

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

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

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

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

Пример

Предположим, что здесь используется ключ 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

Java




/*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 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");
        }
    }
}