Я видел такое поведение сегодня при работе с Java EE Framework.Каждый раз, когда я получаю int ID с сервера, этот ID шифруется + кодируется в базе 64, и зашифрованная строка отправляется обратно.Каждый запрос дает другой зашифрованный ключ.Странное поведение заключается в том, что если я сделаю 5 запросов, зашифрованный текст, полученный после первого запроса, все еще будет работать (расшифровка его даст мне правильный int ID).Шифрование работает примерно так:
request 1 for (same) ID =>
int ID + salt + ?(assume unique timestamp) = encrypted text 1 => encoded result 1
request 2 for (same) ID =>
int ID + salt + ?(assume unique timestamp) = encrypted text 2 => encoded result 2
Мой вопрос: без кеширования чего-либо (проверьте это на двух разных станциях, разные строки шифрования для одного и того же номера будут расшифрованы на одном и том же номере на обеих станциях), как этоповедение возможно в том смысле, что как алгоритм дешифрования узнает, как сопоставить множество 12-символьных зашифрованных строк с одними и теми же исходными данными?Кроме того, существует ли ограничение на количество зашифрованных строк, которые можно отобразить на одни и те же данные?
Спасибо!
PSThe Framework с открытым исходным кодом использует метод javax.crypto.Cipher.doFinal как для шифрования, так и для дешифрования.