Сервис для
сео - оптимизаторов

Найди ошибки на сайте
Ошибки мешают продвижению сайта
Исправь ошибки на сайте
Сайт без ошибок продвигать легче
Получи новых клиентов
Новые клиенты принесут больше прибыль

Алгоритм Java DES

  1. Шаги дешифрования Java DES
  2. О Панкадж

Java Cryptography Extension ( JCE ) предоставляет структуру и реализацию для генерации ключа и шифрования / дешифрования данных с использованием различных алгоритмов. В этом руководстве мы будем использовать реализацию Java DES для шифрования и дешифрования файла.

DES - это алгоритм блочного шифрования, в котором нам придется использовать один и тот же ключ для шифрования и дешифрования. Это одна из основных техник шифрования. Это небезопасно, потому что мы должны предоставить клиентскому приложению безопасный ключ для расшифровки данных.

Шаги дешифрования Java DES

  • Прежде всего нам нужно получить экземпляр KeyGenerator, используя алгоритм DES.
  • Создайте SecureKey (ключ), который будет использоваться для шифрования и дешифрования.
  • Получить экземпляр Cipher с использованием алгоритма DES, один для режима шифрования, а другой для режима дешифрования. Инициализируйте объект шифрования, используя ключ и объект IvParameterSpec.
  • Для шифрования создайте объект CipherOutputStream, используя шифрованный шифр. Для дешифрования создайте объект CipherInputStream, используя расшифрованный шифр.
  • Чтение входного потока и запись в выходной поток.

В следующем примере сначала зашифруйте файл и сохраните зашифрованные данные в новый файл. Затем он расшифровывает тот же файл, чтобы создать текстовый файл.


копия

пакет com.journaldev.des; import java.io.FileInputStream; import java.io.FileOutputStream; импорт java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.crypto.CipherInputStream; import javax.crypto.CipherOutputStream; import javax.crypto.KeyGenerator; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax.crypto.spec.IvParameterSpec; открытый класс DESEncryptionExample {частный статический шифр encryptCipher; приватный статический шифр decryptCipher; закрытый статический последний байт [] iv = {11, 22, 33, 44, 99, 88, 77, 66}; public static void main (String [] args) {String clearTextFile = "/Users/pankaj/source.txt"; String cipherTextFile = "/Users/pankaj/cipher.txt"; String clearTextNewFile = "/Users/pankaj/source-new.txt"; try {// создаем SecretKey с помощью KeyGenerator SecretKey key = KeyGenerator.getInstance ("DES"). generateKey (); AlgorithmParameterSpec paramSpec = new IvParameterSpec (iv); // получить экземпляр Cipher и запустить его в режиме шифрования encryptCipher = Cipher.getInstance ("DES / CBC / PKCS5Padding"); encryptCipher.init (Cipher.ENCRYPT_MODE, ключ, paramSpec); // получаем экземпляр Cipher и запускаем его в режиме дешифрования decryptCipher = Cipher.getInstance ("DES / CBC / PKCS5Padding"); decryptCipher.init (Cipher.DECRYPT_MODE, ключ, paramSpec); // метод для шифрования открытого текста в зашифрованный файл (новый FileInputStream (clearTextFile), новый FileOutputStream (cipherTextFile)); // метод дешифрования зашифрованного файла для дешифрования текстового файла (new FileInputStream (cipherTextFile), new FileOutputStream (clearTextNewFile)); System.out.println ( "DONE"); } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException | IOException e) {e.printStackTrace (); }} private static void encrypt (InputStream is, OutputStream os) выдает IOException {// create CipherOutputStream для шифрования данных с использованием encryptCipher os = new CipherOutputStream (os, encryptCipher); writeData (is, os); } private static void decrypt (InputStream is, OutputStream os) выдает IOException {// создать CipherOutputStream для дешифрования данных с использованием decryptCipher is = new CipherInputStream (is, decryptCipher); writeData (is, os); } // служебный метод для чтения данных из входного потока и записи в выходной поток. private static void writeData (InputStream is, OutputStream os) throws IOException {byte [] buf = new byte [1024]; int numRead = 0; // операция чтения и записи while ((numRead = is.read (buf))> = 0) {os.write (buf, 0, numRead); } os.close (); закрыто(); }}

После завершения программы вы можете проверить, что и в текстовом файле содержатся одинаковые данные, а в зашифрованном файле нет текстовых данных. Ниже приведено содержимое файлов из моих примеров файлов с выделенным зашифрованным текстом.

Ниже приведено содержимое файлов из моих примеров файлов с выделенным зашифрованным текстом

Дальнейшее чтение: Создать программу CSR Java

Рекомендации: Википедия а также Криптографическая архитектура Java

Рекомендации:   Википедия   а также   Криптографическая архитектура Java

О Панкадж

Я люблю технологии с открытым исходным кодом, и рассказывать о своем опыте с ними - моя страсть. Вы можете связаться со мной напрямую на facebook , щебет , а также YouTube ,