Можно ли скрыть данные в тексте?

Кажется, что parent.id < child.id выполняется, то есть: родитель создается первым. Хотя это и не обязательно, иногда это может облегчить ситуацию.

Здесь это не нужно.

public void processData(List<Category> categoryList) {
    Map<String, CategoryTree> map = categoryList.collect(
            Collectors.toMap(cat -> cat.id,
                             cat -> new CategoryTree(id, name)));
    List<CategoryTree> treeRoots = new ArrayList<>(); // Forrest if more than one root.
    categoryList.forEach(cat -> {
        CategoryTree node = map.get(cat.id);
        if (cat.parentId != null) {
            CategoryTree parent = map.get(cat.parentId)
            parent.children.add(node );
        } else {
            treeRoots.add(node );
        }
    });
    List<CategoryTree> roleObjectList = new ArrayList<>(map.values());
    ...

Хотя, возможно, быстрее, чем алгоритм следования по пути (который может использовать порядок идентификаторов), ему требуется дополнительная память: дополнительная карта.

5
задан Léo Léopold Hertz 준영 1 May 2009 в 00:41
поделиться

10 ответов

HTML делает довольно легким сделать это на самом деле. Никакая потребность в действительно хитрых суммах стеганографии, и т.д. Давайте посмотрим:

Это предложение встраивает 123 и затем прекращает встраивать.

Это предложение встраивает 0102 и затем прекращает встраивать.

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

Я оставил его таким же небольшим количеством загадки для разработки схемы, но добавить комментарий, если Вы хотите, чтобы это было явно объяснено.

4
ответ дан 18 December 2019 в 08:32
поделиться

Конечно, это может быть сделано.

То, что Вы описываете, находится в широком описании под названием Стеганография.

Например, Вы могли бы закодировать число таким способом, которым Вы считаете количество слов, пока Вы не видите, что буква B, в этом случае 123 могла быть закодирована как:

You belong to the beautiful group of people being elite.

Вещь, человек, желающий декодировать Ваше сообщение, должен знать Ваш алгоритм.

Редактирование я замечаю, что мои числа выключены одним. Начните рассчитывать в 0, и Вы будете видеть номер 123.

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

Существуют очень сложные подходы к этой проблеме, однако можно, вероятно, пойти с очень простым. Например, определите прилагательное для каждого числа:

0. beautiful
1. harmless
2. evil
3. colorful
4. weird

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

"The {adj} cat sat on the {adj} dog and the {adj} cat was happy."

Ваше число равняется 123, таким образом, Ваше предложение

"The harmless cat sat on the evil dog and the colorful cat was happy."

Синтаксический анализатор может легко взять предложение, разделить его на слова, найти прилагательные на приведенной выше таблице и преобразовать их назад в числа.

The -> ?
harmless -> 1
cat -> ?
sat -> ?
on -> ?
the -> ?
evil -> 2
:

в конце Вы имеете 123 снова.

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

1. harmless

можно определить

1. harmless/stupid/blue/fashionable

когда необходимо будет закодировать 1, случайным образом выберите любое из слов выше. Как они все карта к номеру 1, не будет заботиться обратный синтаксический анализатор, какое из слов печатается там, результатом всегда будет тот. Эта рандомизация будет мешать перепроектировать алгоритм.

3
ответ дан 18 December 2019 в 08:32
поделиться

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

0
ответ дан 18 December 2019 в 08:32
поделиться

Я думаю, что Вы ищете, что-то названное Стеганографией. У Corinna John есть превосходный набор статей о предмете на CodeProject.

http://www.codeproject.com/script/Articles/MemberArticles.aspx?amid=475133

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

Может быть алгоритм, который может превратить то предложение в 123, но я думаю в целом, что Вы испытываете необходимость для принятия некоторых модификаций к тексту, если необходимо сохранить какое-либо возможное численное значение!

0
ответ дан 18 December 2019 в 08:32
поделиться

Я думаю на высоком уровне, о чем Вы говорите, стеганография. http://en.wikipedia.org/wiki/Steganography

Раздел по современным методам должен запустить Вас: http://en.wikipedia.org/wiki/Steganography#Modern_steganographic_techniques

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

Согласно этому потоку:

Профессор Mikhail Atallah и. al. здесь в Пердью провел большое исследование в области создания водяных знаков на тексте.

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

(другая методика для создания водяных знаков на тексте представлена здесь),

Это может быть другой способ скрыть текст в рамках текста, наряду с методом Steganograph, описанным в других ответах.

0
ответ дан 18 December 2019 в 08:32
поделиться

Ну, Вы могли попробовать что-то вроде этого... не уверенное, если это точно, что Вы ищете, все же.

-1
ответ дан 18 December 2019 в 08:32
поделиться

Подход, о котором упоминал Джон Скит, очень похож на подход Мэтью Квана "SNOW". Оба они скрывают в тексте небольшое количество произвольной информации, не добавляя, не удаляя и не изменяя ни одного из слов в исходном тексте. Оба кодируют секретное сообщение обычным, невидимым пробелом -- дополнительные пробелы и символы табуляции между словами и в конце строк.

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

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