SSL действительно стоит того?

  1. использовать int count[256] получить каждый символ в слове для каждого слова, например, для "abcabc", сделать count['a'] = 1 count['b'] = 1 count['c'] = 1
  2. qsort со специальным сравнением используйте вывод count
  3. для каждого слова, если count совпадает с выводом в строке, если не выводится следующая строка

Может работать следующий code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Node {
  unsigned char* st;
  int count[256];
};

int compare(const void* x, const void* y) {
  const struct Node* node_x = (const struct Node*)x;
  const struct Node* node_y = (const struct Node*)y;

  for (int i = 0; i != 256; ++i) {
    if (node_x->count[i] > node_y->count[i])
      return -1;
    if (node_x->count[i] < node_y->count[i])
      return 1;
  }
  return 0;
}

int main() {
  unsigned char f[][10] = {"abc", "acb", "abcabc", "cab", "de", "gh", "ab", "ed", "hg"};
  int n = sizeof(f) / sizeof(f[0]);
  struct Node node[100];

  for (int i = 0; i != n; ++i) {
    node[i].st = f[i];
    for (int j = 0; j != sizeof(node[i].count) / sizeof(node[i].count[0]); ++j)
      node[i].count[j] = 0;
    for (int j = 0; f[i][j] != '\0'; ++j) {
      unsigned char ch = f[i][j];
      node[i].count[ch] = 1;
    }
  }

  qsort(node, n, sizeof(struct Node), compare);

  int t = 0;
  for (int i = 0; i < n; ++i) {
    if (i == 0) {
      ++t;
      continue;
    }
    int k = i - 1;
    if (memcmp(node[i].count, node[k].count, sizeof(node[i].count)) == 0) {
      if (t == 1)
        printf("%s ", node[k].st);
      printf("%s ", node[i].st);
      ++t;
    } else {
      if (t != 0)
        printf("\n");
      t = 0;
    }
  }
  printf("\n");

  return 0;
}
5
задан bradheintz 24 July 2011 в 23:03
поделиться

9 ответов

Это походит на вопрос об оптимизации. Если у Вас есть информация, которую Вы чувствуете, ценно, начните с SSL (относительно легкое решение по обеспечению безопасности испытывать). После того как Вы имеете вещи, работающие, сравниваете системы с и без. Если Вы чувствуете, что хит производительности стоит провести время на попытаться оптимизировать далеко, сделайте это. В противном случае Вы сделаны!

11
ответ дан 18 December 2019 в 05:44
поделиться

Пользователи входят в систему с именем пользователя и паролем? Если так, я думаю, что это стоит защитить. В конце концов, пользователи могут закончить тем, что использовали пароль, который они используют в безопасных целях в другом месте. Я знаю, что они не были должны, но...

Теперь предположите чье-то отслеживание своего незащищенного разговора. Они получают пароль пользователя для Вашего сайта, используют его для вхождения в чувствительный сайт, и они выключены...

Если Вы не хотите шифровать информацию (и я действительно понимаю, что это - что-то вроде боли, овладевающей действительным сертификатом и т.д.), затем, стоит, по крайней мере, сделать это очень ясным пользователям, что их данные не шифруются, и решительно убедите их не использовать пароль, который они используют в другом месте.

7
ответ дан 18 December 2019 в 05:44
поделиться

Если Ваше взволнованное о Ваших клиентах, взламывающих Вашу передачу данных ssl, покупает Вас ничто. Его безопасность канала и если они владеют клиентом ее относительно тривиальное для установки человека на средней сессии, где они могут просмотреть незашифрованную передачу. Если Вашими взволнованными о пользователях, взламывающих пользовательские передачи данных других затем ssl, являются хорошие и относительно простые меры безопасности.

6
ответ дан 18 December 2019 в 05:44
поделиться

SSL должен использоваться, так как Вы не знаете, какое использование или проблемы произойдут в будущем.

Конфиденциальность является только одним способом рассмотреть, нужен ли Вам SSL при передаче любых персональных данных затем, я хотел бы защищенный. В некоторых странах можно нарушить законы о защите данных, не используя SSL.

Существуют другие методы защиты данных, которые Вы передаете, такие как шифрование полезной нагрузки с ключом PGP перед передачей и дешифрованием на сервере.

2
ответ дан 18 December 2019 в 05:44
поделиться

Нет. Если плеер X не между игроком Y и сервером, единственные данные, которые он может получить путем взламывания способа, о котором Вы говорите, данные, которые сервер отправляет плееру X. И те данные не защищены вообще, так как его машина должна смочь извлечь их так или иначе. Можно также просто архивировать его вместо того, чтобы использовать SSL: уровень защиты не будет отличаться очень. Вместо этого просто удостоверьтесь, что Вы не отправляете плееру X данных, которые он не должен иметь. Это маловероятно для кого-то использовать man-in-the-middle тип нападения на игру.

1
ответ дан 18 December 2019 в 05:44
поделиться

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

Помимо обеспечения потока данных, действительно ли возможно срезать то, что Вы уже отправляете? Или сожмите его?

1
ответ дан 18 December 2019 в 05:44
поделиться

Больше информации необходимо для принятия интеллектуального решения, но Вы не должны использовать SSL для обеспечения данных. Вы могли всегда использовать другой алгоритм и общий секрет между клиентом и сервером или общественность/закрытые ключи. Вы затем имели бы лучший контроль над который биты защитить и который биты оставить открытым.

В общих вещах как логины должен всегда шифроваться с помощью SSL. Вы могли обмениваться новым набором ключей по каналу SSL и затем переключиться на не-SSL с помощью ключей для защиты уязвимых данных.

1
ответ дан 18 December 2019 в 05:44
поделиться

SSL, как полагают некоторые, является фиксацией для проблемы, которая (почти) не существует. Очень трудно на самом деле коснуться провода и извлечь незашифрованную информацию. Почти никто не делает это.

Если Вы смотрите на случай покупки у интернет-магазина, что, намного более вероятно, произойдет, то, что они взламывают сервер и загружают всю базу данных транзакций. В идеальной системе Вы даже не отправили бы свои учетные данные кредитной карты торговому посреднику, просто сертификат со знаком из компании по выпуску кредитных карт, заявив, что транзакция была уже авторизована. Однако в первые годы Интернета, который оказался слишком трудной системой для установки, но это будет более правильное решение. В конце они выбрали менее эффективное, но легче реализовать систему.

Теперь по Вашему вопросу. В Вашем случае я не вижу, что SSL предлагает много. Если кто-то want's для установки программы для контроля, что отправляется в сеть, это может все еще быть сделано, поскольку они могут просто поместить рычаги для собирания данных, прежде чем это будет на самом деле зашифровано. Если Вы волнуетесь по поводу третьих лиц или противников, против которых они играют, осуществляя сниффинг провода для выяснения информации об игре, у них не должно быть доступа к, такого как чат между товарищами по команде другой команды. Ну, я сказал бы, что к риску там довольно минимален, и не стоит обращаться.

1
ответ дан 18 December 2019 в 05:44
поделиться

В дополнение к примечаниям об о шифровании имен пользователей и паролей во время передачи, SSL также предотвращает Человека в средних нападениях за счет добавления наверху к каждому запросу.

Выгода - то, что у Вас должен быть некоторый способ позволить клиенту знать, что Ваш конкретный сертификат действителен... или более точно, что это - единственное допустимое для Вашей игры.

Который также поднимает проблему того, как Вы говорите игру, когда новый сертификат заменяет старый после того, как старый истекает.

Серьезно, тем не менее, если это не какая-то игра подписки, SSL является, вероятно, излишеством.

0
ответ дан 18 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: