Какой алгоритм шифрования использует GNU recutils?

Используйте ассоциативный массив в awkдля подсчета вхождений нулей для каждой группы:

awk '$3 == 0 && ++count[$1] || count[$1] { next } END { for (group in count) printf("%s%s%d\n", group, OFS, count[group]) }' file

Немного неловко

$3 == 0 && ++count[$1] || count[$1] { next }

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

Муру указывает в комментариях, что этот бит можно заменить немного более коротким

{ count[$1] += ($3 == 0) }

, где $3 == 0будет либо 0, либо 1 в зависимости от значения в третьем столбце.

Вывод в конце выполняется с помощьюprintf():

printf("%s%s%d\n", group, OFS, count[group])

Это напечатает группу (из первого столбца входных данных )вместе с соответствующим количеством нулей,сOFS(разделителем полей вывода; по умолчанию пробел )в -между ними.

Если счетчик отсутствует для одной группы, формат printf()%dбудет вставлять ноль.

Тестирование:

$ awk '$3 == 0 && ++count[$1] || count[$1] { next } END { for (group in count) printf("%s%s%d\n", group, OFS, count[group]) }' file
A 2
B 0
0
17.08.2021, 22:46
1 ответ

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

Глядя на файл configure.acпроекта , мы видим, что он содержит код для обнаружения библиотеки libgcrypt. Если библиотека не может быть найдена на хосте, компилирующем код, GNU recutils будет собран без поддержки шифрования/дешифрования полей.

Библиотека libgcrypt— это криптографическая библиотека общего назначения, являющаяся частью программного проекта GnuPG. Он имеет количество симметричных шифров.

0
22.11.2021, 19:16

Теги

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