Совсем случайный. Компьютер такого не сможет! Этот метод так же можно использовать вместо занятий физкультурой.

  1. Открываем текстовый редактор (или бумажный блокнот).

  2. Берем монетку.

  3. Бросаем монетку и запоминаем результат.

  4. Бросаем монетку еще раз. Если результат такой же как в прошлый раз (орел-орел или решка-решка), оба результата игнорируются (можно записать прочерк «-», чтобы потом посмотреть сколько всего бросков было). Если результат другой (решка-орел или орел-решка), записываем первый результат (1 - решка, 0 - орел) и забываем второй.

  5. Повторяем с шага 3 до получения нужного количества битов. Для 16-символьного пароля нам понадобится 96 битов, то есть 96 ноликов или единиц. В результате у нас получится что-то вроде этого: –1-0—-0-111–0-0–1110–011-00–1–00-1-1-1-1—00000011-1——-011… и т.д.

  6. Убираем прочерки и группируем получившиеся единички и нолики в столбик по шесть штук:

    100111
    001110
    011001
    001111
    000000
    111011
    ...
    
  7. Смотрим в эту табличку, ищем комбинацию из цифр и записываем соответствующую ей буковку.

    000000  A      100000  g
    000001  B      100001  h
    000010  C      100010  i
    000011  D      100011  j
    000100  E      100100  k
    000101  F      100101  l
    000110  G      100110  m
    000111  H      100111  n
    001000  I      101000  o
    001001  J      101001  p
    001010  K      101010  q
    001011  L      101011  r
    001100  M      101100  s
    001101  N      101101  t
    001110  O      101110  u
    001111  P      101111  v
    010000  Q      110000  w
    010001  R      110001  x
    010010  S      110010  y
    010011  T      110011  z
    010100  U      110100  0
    010101  V      110101  1
    010110  W      110110  2
    010111  X      110111  3
    011000  Y      111000  4
    011001  Z      111001  5
    011010  a      111010  6
    011011  b      111011  7
    011100  c      111100  8
    011101  d      111101  9
    011110  e      111110  +
    011111  f      111111  /
    

Таким образом у нас получится:

100111 n
001110 O
011001 Z
001111 P
000000 A
111011 7
...

Случайно сгенерированный пароль: nOZPA7…

* * *

Такие пароли не очень подходят для систем, где регистр букв не важен (например, n и N – одно и то же). Для них можно взять табличку ascii85 вместо base64, которую я тут привел (или придумать свою), и сделать пароль длиннее.

Почему нужно кидать монетку по два раза и игнорировать одинаковый результат? Чтобы превратить «biased coin» в «fair coin».

Бросайте монетки на здоровье!