Как отлаживать / исследовать поврежденные зашифрованные данные? - PullRequest
0 голосов
/ 17 октября 2018

У меня есть кодовая база, которая хранит некоторые конфиденциальные данные в базе данных.Прежде чем сохранить данные в БД, я зашифровываю данные, используя эту библиотеку шифрования ( документы здесь ).

Для расшифровки я использую следующие

use \Defuse\Crypto\Crypto;
use \Defuse\Crypto\Exception as Ex;

// The following is inside a class, but for clarity I only copy pasted this part    

try {
    return Crypto::decrypt($aStr, Crypt::$cryptoKey);

} catch (Ex\InvalidCiphertextException $ex) { // VERY IMPORTANT
    // Either:
    //   1. The ciphertext was modified by the attacker,
    //   2. The key is wrong, or
    //   3. $ciphertext is not a valid ciphertext or was corrupted.
    // Assume the worst.
    die('The ciphertext has been tampered with! Message:'.$ex->getMessage());
}
// I've got some more catch blocks here but they're not relevant for this question

Этот код прекрасно работает, но сегодня я наткнулся на одну запись базы данных, которая заставляет все это погибнуть при этом InvalidCiphertextException улове.Я пробовал вручную с некоторым примером кода, но всегда получаю InvalidCiphertextException.

Я предполагаю, что данные повреждены, но я не уверен, так ли это.

Запись находится в середине таблицы с 15000 записями, все в порядке, и не было никаких внезапных изменений в этой части кода целую вечность.

Могу ли я еще что-нибудь исследовать (илидаже расшифровать) это?Или я могу найти дополнительную информацию об этой записи или способе ее дальнейшей отладки?

Все советы приветствуются!

...