Симметричное шифрование — это общее средство, с помощью которого вы можете зашифровать сообщение в открытом виде (открытый текст) в его зашифрованный эквивалент (зашифрованный текст) и расшифровать обратно, используя ключ, называемый закрытым ключом. Тот, у кого есть ключ, сможет выполнять эту операцию туда и обратно (отсюда и слово «симметричный»). Это, как вы знаете, сильно отличается от кодирования/декодирования, где не используется закрытый ключ, и для декодирования достаточно знать алгоритм кодирования. (например, База 64).
Похоже, у вас есть дополнительное требование: зашифрованный текст должен быть короче, чем открытый текст. Можно использовать некоторые методы сжатия, но это сложно и, возможно, нецелесообразно в вашем случае использования. В общем, если вы используете утилиту SymmetricEncryption, такую как эту (реальный код, попробуйте с Java 8), вы убедитесь, что зашифрованный текст длиннее, чем зашифрованный текст (не то, что вам нужно).
Наконец, это решение может быть сложным для вашего варианта использования. Если я правильно понимаю, вы хотите идентифицировать сеанс HTTP с некоторой информацией. Если вы храните эту информацию в файле cookie, да, вам нужно будет защитить эту информацию, чтобы ваше решение было не менее безопасным, чем сам файл cookie. Но в таких случаях вы используете хранилище на стороне сервера для сеанса, а не хранилище файлов cookie. Посмотрите, как это делается, например, с помощью Rails. Что-то подобное должно быть доступно в Java. Таким образом, то, что вы сохраняете в файле cookie, является «ссылкой» на конфиденциальные данные, а конфиденциальные данные хранятся на стороне сервера (который, предположительно, так же безопасен, как и весь сервер).
person
Kedar Mhaswade
schedule
31.05.2015