PHP - Использование метки времени Unix в качестве ключа? - PullRequest
0 голосов
/ 21 сентября 2011

Итак, в последнее время я изучал шифрование и слышал о людях, использующих метки времени в качестве ключей для шифрования.Я думаю, что это отличная идея, но если я хочу расшифровать данные, как мне получить эту конкретную метку времени?Метки времени уникальны, и я не совсем уверен, как это будет работать.

РЕДАКТИРОВАТЬ: я использую PHP и MYSQL

Ответы [ 5 ]

2 голосов
/ 21 сентября 2011

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

0 голосов
/ 28 сентября 2011

Я не хочу ранить ваши чувства, но ...

Совершенно очевидно, что вы никогда не изучали крипто.

Итак, пожалуйста не разрабатывайте свои собственные криптографические протоколы и также не собирайте криптографические примитивы самостоятельно (как это сделали криптологи-дизайнеры "WiFi" с помощью WEP).

Протоколы, разработанные для достижения определенных целей безопасности (Я не говорю, что «безопасные протоколы» специально были придуманы и внедрены специалистами.

Сначала необходимо определить цели безопасности, а затем выбрать подходящий протокол.

0 голосов
/ 21 сентября 2011

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

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

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

0 голосов
/ 21 сентября 2011

Здесь две проблемы.

Вам нужно где-то хранить метку времени.Так почему бы просто не использовать "rand ()" и сохранить это.

На современных многопоточных, многоядерных процессорах можно получить сотни дублированных временных меток.Так что вы можете просто использовать date ().

0 голосов
/ 21 сентября 2011

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

Что я хотел бы сделать, это сохранить метку времени вместе с зашифрованной строкой в ​​другом формате, например: 09/21/2011 03:09:53, и использовать комбинацию strtotime() и засолку для хранения обоих битов информации в безопасном поместье.

09/21/2011 03:09:53 становится 13165--Salt--74593

...