Шифрование и дешифрование можно сделать симметричной — здесь и тот же ключ используется для шифрования и дешифрования данных. Потому что обе стороны имеют тот же ключ, расшифровка по существу производится путем обращения вспять некоторую часть процесса шифрования. Алгоритмом Blowfish является примером симметричного ключа. Она поддерживается Java Cryptography Extension (ОКО). Вы можете найти в соответствующих API для javax.crypto .* пакетах. В дополнение к Blowfish, примеры алгоритмов шифрования поддерживаемых в настоящее время являются ОКО Digital Encryption Standard (DES), Triple DES шифрование (DESede), а также на основе пароля, алгоритм шифрования (PBEWithMD5AndDES).
Симметричный алгоритм Key, как правило, гораздо быстрее, чем асимметричные ключевые алгоритмы. Кроме того, как вы видели в первый отзыв, размер текста, который может быть зашифрован, зависит от размера произведения двух простых чисел, используемый для создания открытых и закрытых ключей. С симметричными алгоритмами ключевую у вас нет ограничений на общий размер, что может быть зашифрована. Хотя, в зависимости от алгоритмов симметричного шифрования, общий размер входного должна быть кратна размеров блоков и, возможно, потребует прокладки. Проблема с симметричными ключами, что ключи должны распределяться между сторонами, участвующими в шифрования или расшифрования. Поэтому есть опасность перехвата или несанкционированного обмена.
Вы можете создать симметричный ключ, сколько вам создать пару ключей. Вы используете метод фабрики из класса KeyGenerator и передать в алгоритме в виде строки. Когда вы звоните generateKey () метод, вы получите обратно объект, который реализует ключевые интерфейс вместо интерфейса ключей. Призыв выглядит примерно так:
|
Далее вам необходимо создать Cipher. Это рабочая лошадка для ОКО. Вы снова использовать метод фабрики класса Cipher так что вы можете воспользоваться различными поставщиками без изменения приложений. Вы можете создать Cipher следующим образом:
|
Шифрования используется для шифрования и дешифрования данных, которые передаются в виде байт-массивы. Двух основных методов, которые вы должны использовать являются Init (), чтобы указать, какие операции будет называться, и doFinal (), для выполнения этой операции. Например, следующие две строки использовать шифр и ключевые случаев вы создали, чтобы зашифровать массив байтов называется textBytes. Результат сохраняется в массиве байт называется encryptedBytes.
|
Полагая это вместе, следующая программа принимает входную строку и шифрует ее. Зашифрованная строка затем расшифрованы.
|
Вы можете ввести любой текст, который вы хотели в качестве параметра командной строки. Например, если вы отправите на следующую командную строку:
java LocalEncrypter "Whatever phrase we would like to input at this point"
Вы должны увидеть нечто подобное в качестве вывода:
Entered: Whatever phrase we would like to input at this point Recovered: Whatever phrase we would like to input at this point
В этом примере, как шифрование и расшифровка было сделано с той же ключевой объект. Шифрование и дешифрование обычно происходит на разных виртуальных машинах в разное время, поэтому вам нужен метод для безопасной транспортировки ключа.
В первый отзыв вы научились генерировать пары ключей для асимметричных алгоритмов шифра. Во второй отзыв, были использованы симметричными ключами. Вот другой техники, которая сочетает в себе асимметричных и симметричных ключей. В этой технике симметричный ключ выбран случайным образом и используется для шифрования некоторых данных. Ключевые само затем шифруется с помощью открытого ключа другой стороны. Получатель использует свой секретный ключ для расшифровки с симметричным ключом, а затем использует этот расшифрованный ключ для расшифровки сообщения. Модуль используется в асимметричной технике нужно только быть достаточно большим для шифрования симметричного ключа. Симметричный ключ используется для одной передачи, а затем отбрасывается. Таким образом, устраняются недостатки каждого типа.
Вы можете узнать больше о:
- DES Encryption
- Triple DES
- AES encryption (FIPS-197), which is proposed as a replacement for DES
- Blowfish
Copyright (C) 2004-2005 Sun Microsystems, Inc
Все права защищены.