Не могу расшифровать данные - PullRequest
1 голос
/ 07 декабря 2011

Мне нужно расшифровать данные, хранящиеся в базе данных mysql.

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

function encrypt($text,$key){
  $key = md5("Salt1". $key . "Salt2");
  return trim(
    base64_encode(
      mcrypt_encrypt(
        MCRYPT_RIJNDAEL_256, 
        $key, 
        $text, 
        MCRYPT_MODE_ECB, 
        mcrypt_create_iv(
          mcrypt_get_iv_size(
            MCRYPT_RIJNDAEL_256, 
            MCRYPT_MODE_ECB
          ), 
          MCRYPT_RAND
        )
      )
    )
  ); 
}

Таким образом, данные были зашифрованы при отправке, а данные ключа взяты из пары столбцов в одной строке.

Но используя:

function decrypt($text,$key){
  $key = md5("Salt1". $key . "Salt2");
  return trim(
    mcrypt_decrypt(
      MCRYPT_RIJNDAEL_256, 
      $key, 
      base64_decode($text), 
      MCRYPT_MODE_ECB, 
      mcrypt_create_iv(
        mcrypt_get_iv_size(
          MCRYPT_RIJNDAEL_256, 
          MCRYPT_MODE_ECB
        ),
        MCRYPT_RAND
      )
    )
  ); 
} 

Я просто получаю больше зашифрованного мусора.

Мне нужно другое решение, кроме как попросить пользователей вернуться и обновить свою информацию.

1 Ответ

0 голосов
/ 07 декабря 2011

[$salt1 и $salt2] Это статические текстовые блоки из другого источника.Мне удалось получить некоторые из моих данных для расшифровки, но я не могу получить другие данные, где я использовал дату ("r") как часть ключа.очевидное, но date("r") печатает другое значение каждую секунду:

Wed, 07 Dec 2011 17:35:44 +0100

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

...