LINUX.ORG.RU

[странное][хотеть]читаемая хеш-функция

 ,


0

0

Хочу хеш-функцию смешную. Чтоб на выходе было ... как бы слово , и слово было у Бога, и слово было «Бог». В смысле - читаемая (понимайте как знаете:) последовательность букв. Не слишком длинная, не слишком короткая (все-таки хочется некоторой уникальности). Чтоб не было «одни только гласные» или «одни только согласные» или «7 согласных подряд» и т.д. Чтоб человек мог произнести как-то эту последовательность, не сломав язык. Такое бывает в природе?

Годится как английский, так и русский вариант.

★★★★★

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

isden ★★★★★
()
Ответ на: комментарий от isden

Да, где-то так.. Словарь не нужен, мне вполне достаточно просто читаемого сочетания звуков. Глокая куздра и прочие химеры вполне сойдут.

svu ★★★★★
() автор топика

я бы посмотрел на код какой-нить генерилки паролей. pwgen вполне себе произносимые пароли генерит

BreadFan ★★
()

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

anonumus
()

$ md5sum linux-2.6.30.5.tar.bz2
be9c3a697a54ac099c910d068ff0dc03 linux-2.6.30.5.tar.bz2

$ md5sum linux-2.6.30.5.tar.bz2 | ./readable
bee-e-nine-cee-three-a-six-nine-seven-a-five-four-a-cee-zero-nine-nine-cee-nine -one-zero-dee-zero-six-eight-ef-ef-zero-dee-cee-zero-three linux-2.6.30.5.tar.bz2

всегда ваш, к.о. ;)

arsi ★★★★★
()
Ответ на: комментарий от BreadFan

я думал про pwgen, но он же не хеши делает... Впрочем, надо посмотреть. Интересно, есть ли где описание его алгоритмов...

svu ★★★★★
() автор топика
Ответ на: комментарий от anonumus

Неинтересно. Да и для приличной хеш-функции размер словаря должен быть охрененным. Хочется прямо генерить...

svu ★★★★★
() автор топика
Ответ на: комментарий от svu

> Жесть...

анимешники предлагают альтернативный подход:

$ crc32 linux-2.6.30.5.tar.bz2
0af6dc31

$ crc32 linux-2.6.30.5.tar.bz2 | ./readable
manoyupipegaka

нэ? ^_^'

arsi ★★★★★
()

вариант словаря.
Выбираются 10 согласных и 10 гласных.
Берётся число-хэш и первая старшая цифра будет индекс согласной, вторая цифра будет индекс гласной и т.д.

б в г д ж з к л м н
а е ё и о у ы э ю я

из хэша "3378678303" получается слово хэш "дилюкэмиби"

anonumus
()
Ответ на: комментарий от svu

-H, --sha1=/path/to/file[#seed] Will use the sha1’s hash of given file and the optional seed to create password. It will allow you to compute the same password later, if you remember the file, seed, and pwgen’s options used. ie: pwgen -H ~/your_favorite.mp3#your@email.com gives a list of possibles passwords for your pop3 account, and you can ask this list again and again.

WARNING: The passwords generated using this option are not very random. If you use this option, make sure the attacker can not obtain a copy of the file. Also, note that the name of the file may be easily available from the ~/.history or ~/.bash_history file.

psv1967 ★★★★★
()
Ответ на: комментарий от anonumus

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

svu ★★★★★
() автор топика
Ответ на: комментарий от svu

Это где у вас такое readable??

исходник, правда, unreadable, но зато workable ;)

#!/usr/bin/perl

use strict;

my @s = qw/
ka ki ku ke ko
ga gi gu ge go
sa shi su se so
za ji zu ze zo
ta chi tsu te to
da ji de do
na ni nu ne no
ha hi fu he ho
ba bi bu be bo
pa pi pu pe po
ma mi mu me mo
ya yu yo
ra ri ru re ro
wa n/;

my @shift = map {$_*6} 0..5;
sub readable{join'',map{$s[($_[0]>>$_)&63]}@shift}
s/^[\da-f]+/readable hex $&/e,print for<>;
arsi ★★★★★
()
Ответ на: комментарий от svu

Что бы сделать больше согласных букв, не надо 2 массива согласных. Достаточно поменять представление числа. Есть например 2 массива 20 согласных и 10 гласных. Есть число Х. Делим нацело на 10, остаток будет индекс для гласных. Потом делим частное нацело на 20, остаток будет второй индекс для согласных, потом опять на 10, потом опять на 20 и пока не кончится число. Получится набор индексов в некоторой десятично-двадцатичной системе, из которых сформируется буквенный хеш из 20 согласных и 10 гласных.

anonumus
()
Ответ на: комментарий от arsi

кстати объединяя моё и readable можно просто составить программно все нужные пары согласная-гласная (их к примеру будет 600 штук). Потом число переводится в систему счисления с основнием 600. И далее по индексам в этом массиве.

anonumus
()
Ответ на: комментарий от svu

чорд, только заметил: там ji дважды встречается (как じ и ぢ). в ряде da можно заменить ji на dzu, хоть это и не совсем правильно. а вообще да, неплохая реализация base64, даже самому понравилось %)

arsi ★★★★★
()
Ответ на: комментарий от anonumus

Да, концептуальненько. Счисление по основанию 600 это пять... Но лор, как всегда, на высоте - идеи генерировать народ не разучился. Всем спасиб!

svu ★★★★★
() автор топика
Ответ на: комментарий от anonumus

600 — это 6 гласных × 100 согласных? о_О

для удобочитаемости лучше таки использовать пары 1согласная+1гласная, да и звучит кавайнее ;)

а для русификации можно заменить таблицу Хэпбёрна на Поливанова ^_^'

и вообще, зачем изобретать лисапед^Wсвою таблицу слогов, если много сотен лет назад её уже изобрели японцы? ;)

arsi ★★★★★
()

google bubble-babble encoding.
$ python ./bbcode.py `md5sum bbcode.py | cut -c -32`
xedek-sihen-navig-topan-lybal-tegor-kavok-lydup-foxix

DonkeyHot ★★★★★
()
Ответ на: комментарий от tempuser002

Это была моя первая мысль. Но как-то совсем ужасно...

svu ★★★★★
() автор топика

Возьми алгоритм генерации капчи с лора, и инициализируй random generator тем, что хочешь хешировать. Такие readable хеши будут -- закачаешься! Я по этой капче ник себе нагадал.

pained
()
Ответ на: комментарий от pained

вообще-то там капчи берутся из готового словаря, что вроде как не подходит.

anonumus
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.