Мы делали простую игру, в котором:
- Пользователи получают
next number of play
какencrypted string
До, они играют - После они играют, шифрование
password
предоставляется им для проверки правильности номера воспроизведения. - Каждая зашифрованная строка
only valid for 1-2 hours
, а число воспроизведения, проверка строки и зашифрованной строки снова восстанавливается после этого времени - Зашифрованная строка содержит код проверки (5 char), поэтому оба пользователя и мы можем убедиться, что процесс дешифрования прошел успешно
Пример символа для шифрования (QQ9LU
- это случайный код проверки, предоставленный пользователю перед игрой):
Следующий номер воспроизведения: 8 - Проверка строки: QQ9LU
Пример зашифрованной строки (предоставляется пользователю перед воспроизведением):
NXRykKOv3B6kuu4Ke3svp7HH3enNiqIZrJSXJiF54QkHHjtXgqpUXxyuP7YUNICeFLg ==
Образец пароля (предоставляется после игры):
Обратите внимание, что это генерируется случайным образом для каждого шифрования
FA00RDjA77hlOzcOzH6kuGcc29CyM7Hw
Мы используем CodeIgniter 2.2.2 Encryption Class для шифрования/расшифровки строк
Информация о методе шифрования:
- Используемая функция:
$this->encrypt->encode($msg, $pass);
со случайным проходом каждый раз - Cipher - это CodeIgniter 2 по умолчанию
MCRYPT_RIJNDAEL_256
- Режим Mcrypt
MCRYPT_MODE_CBC
Мои вопросы:
-
Могу ли я доверять тому, что пользователи не могут сломать зашифрованную строку (и узнать количество игр до того, как они получат пароль) через 1-2 часа (кроме удачи)
-
Является ли случайный код подтверждения
Verify String: T3YH4
там хорошим или плохим? это влияет на безопасность? (это означает, что результат дешифрования был успешным, также мы добавили его, потому что единственная переменная в каждой строке была одной цифрой, например, только номер 8 изменился на 7, поэтому мы хотели добавить в строку больше символов переменной, чтобы, возможно, лучшая безопасность)
Любое другое предложение оценено