Хотя вы не можете отключить все тайм-ауты между кластером Kafka и его потребителями, вы можете изменить некоторые свойства на очень длинные:
group.max.session.timeout.ms
- это максимальное время ожидания сеанса для любого потребителя , По умолчанию это пять минут. Установите для этого параметра значение max max integer, такое как 2100000000
, в файле свойств брокера, обычно называемом server.properties
. max.poll.interval.ms
- Это похоже на тайм-аут сеанса и помечает потребителя как мёртвого, если в течение этого интервала нет опроса. Установите это значение также меньше request.timeout.ms
, например 1900000000
. В Apache Camel вы захотите установить следующие свойства:
consumerRequestTimeoutMs
- это максимальное время ожидания ответа от клиента. Установите для этого значение 2000000000
. sessionTimeoutMs
- Вероятно, это тайм-аут сеанса, который помечает вашего потребителя как мертвого. Это должно быть установлено на значение меньше, чем request.timeout.ms
. Итак, что-то вроде 1900000000
. Может быть еще несколько, найденных здесь , любой из которых с timeout
или ms
будет хорошим для просмотра.
System.Security.Cryptography имеет набор готовых симметричных (и асимметричных) алгоритмов шифрования использовать. (Для чего-то сверхбезопасного используйте aes )
Вы сможете найти подходящую реализацию Javascript для большинства (вот несколько реализаций aes в JS)
Примечание. Если вы планируете использовать шифрование на основе закрытого ключа, имейте в виду, ваша веб-страница будет иметь встроенный ключ, и это означает, что все это становится бессмысленным, потому что любой, имеющий доступ к странице, может расшифровать ее, в лучшем случае вы сделаете жизнь скребков экрана немного сложнее , Если ваша цель состоит в том, чтобы сделать скребки экрана более трудными, вы можете просто использовать алгоритм обфускации. Любая тривиальная реализация была бы очень непрактичной для скребков экрана, у которых нет движка JavaScript:
Например.
function samObsfucated()
{
return("s" + "a" + "m" + "@" + "s" + "." + "com");
}
Затем при загрузке заполните поля электронной почты с выводом этих функций.
Шифрование Javascript имеет действительно хороший пример использования программного обеспечения, которое хранит пароли для пользователей. Ala clipperz
Похоже, что вам нужна обфускация или кодирование, а не шифрование. Base64 кодировка должна работать здесь хорошо. Результат не будет похож на адрес электронной почты, а процесс кодирования будет быстрым.
В C# вы можете использовать:
string emailAddress = "abc@example.com";
string encoded = Convert.ToBase64String(Encoding.UTF8.GetBytes(emailAddress));
И вы можете использовать эту функцию JavaScript для декодирования:
function Base64Decode(encoded) {
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
do {
enc1 = keyStr.indexOf(encoded.charAt(i++));
enc2 = keyStr.indexOf(encoded.charAt(i++));
enc3 = keyStr.indexOf(encoded.charAt(i++));
enc4 = keyStr.indexOf(encoded.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
} while (i < encoded.length);
return output;
}
Приложение C# кодирует строку abc@example.com
в YWJjQGV4YW1wbGUuY29t
, а версия JavaScript декодирует YWJjQGV4YW1wbGUuY29t
обратно в abc@example.com
.
In terms of the simplest thing that could possibly work, it seems that you want a simple form of obfuscation, rather than anything really secure.
Rot-13 might be enough, provided that you're dealing with an audience with ASCII email addresses. If you need to support Unicode, then you might need something slightly more sophisticated.
Можно ли использовать HTTPS для шифрования всего трафика между клиентом и сервером? Это, вероятно, самый безопасный метод, который вы найдете.