Шифрование DES - PullRequest
       21

Шифрование DES

0 голосов
/ 02 ноября 2008

Шифрование DES называется «одностороннее шифрование» или «двустороннее шифрование»? Существуют ли PHP-класс или метод для расшифровки DES-шифрования? спасибо

Ответы [ 6 ]

4 голосов
/ 02 ноября 2008

Функция php crypt является односторонней функцией хеширования. Если вы хотите иметь возможность расшифровывать, посмотрите на расширение mcrypt , которое поддерживает диапазон алгоритмов

3 голосов
/ 02 ноября 2008

Следует отметить, что существуют (и всегда были) вопросы, связанные с алгоритмом DES . Он широко использовался в течение длительного времени, но, поскольку он изначально был указан только с 56-битным ключом, сомнительно, достаточно ли он безопасен для каких-либо важных применений на данный момент. Тройной DES, как правило, лучше, но есть некоторые известные теоретические атаки. Если у вас есть выбор шифра, вы можете вместо этого взглянуть на AES .

2 голосов
/ 05 ноября 2008

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

Двустороннее шифрование или обратимое шифрование - это то, что мы обычно подразумеваем под термином шифрование : открытый текст преобразуется в очевидно случайные данные, но в способ, основанный на «ключе», который позволяет получить исходный открытый текст.

DES - это форма обратимого шифрования, которая является относительно слабой по современным стандартам, так как использует 56-битный ключ (14 шестнадцатеричных символов). Он был заменен 3DES, или Triple-DES, который по сути является тем же алгоритмом с более длинным ключом.

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

Существенным преимуществом хеширования является то, что вам не нужно хранить ключ дешифрования.

2 голосов
/ 02 ноября 2008

DES можно перевернуть, поэтому это двустороннее шифрование (если вы это имели в виду).

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

0 голосов
/ 29 декабря 2008

Я думаю, вы, вероятно, имеете в виду одностороннюю функцию [1]. В криптографии различают симметричную и асимметричную криптографию. Симметричная криптография использует один и тот же ключ для шифрования и дешифрования (DES является симметричным). Асимметричная криптография используется для обмена ключами, а открытый ключ - для шифрования сообщения, а закрытый ключ - для его расшифровки. Примером асимметричной криптографии является AES [2]. Асимметричная криптография использует односторонние функции.

[1] http://en.wikipedia.org/wiki/One-way_function [2] http://en.wikipedia.org/wiki/AES

0 голосов
/ 02 ноября 2008

Я не знаком с терминами «одностороннее шифрование» или «двустороннее шифрование». Существует термин «одноразовый пароль» (совершенно не имеет значения для DES), и существуют «симметричные» и «ассиметричные» алгоритмы шифрования, означающие, используется ли один и тот же ключ для шифрования и дешифрования (симметричный) или набор из двух разных ключей используется один для шифрования, а другой для дешифрования (ассиметричный). DES - симметричный алгоритм. Что касается PHP, то crypt () должен выполнять эту работу:

http://us2.php.net/crypt

...