Spec-Zone.ru › Go

Пакет rand

  • import "crypto/rand"
  • Обзор
  • Индекс
  • Примеры

Обзор

Пакет rand реализует криптографически безопасный генератор случайных чисел.

Индекс

  • Переменные
  • func Int(rand io.Reader, max *big.Int) (n *big.Int, err error)
  • func Prime(rand io.Reader, bits int) (*big.Int, error)
  • func Read(b []byte) (n int, err error)
  • func Text() string

Примеры

Read

Файлы пакета

rand.go text.go util.go

Переменные

Reader — это глобальный, общий экземпляр криптографически безопасного генератора случайных чисел. Он безопасен для одновременного использования.

  • В Linux, FreeBSD, Dragonfly и Solaris Reader использует getrandom(2).
  • В старых версиях Linux (< 3.17) Reader открывает /dev/urandom при первом использовании.
  • В macOS, iOS и OpenBSD Reader использует arc4random_buf(3).
  • В NetBSD Reader использует sysctl kern.arandom.
  • В Windows Reader использует API ProcessPrng.
  • В js/wasm Reader использует API Web Crypto.
  • В wasip1/wasm Reader использует random_get.

В режиме FIPS 140-3 вывод проходит через детерминированный генератор случайных бит (DRBG) SP 800-90A Rev. 1.

var Reader io.Reader

func Int

func Int(rand io.Reader, max *big.Int) (n *big.Int, err error)

Int возвращает равномерное случайное значение в диапазоне [0, max). Возвращает ошибку, если rand.Read возвращает ошибку, или паникует, если max <= 0.

func Prime

func Prime(rand io.Reader, bits int) (*big.Int, error)

Prime возвращает число заданной длины в битах, которое является простым с высокой вероятностью. Prime вернёт ошибку при любой ошибке, возвращённой rand.Read, или если bits < 2.

func Read

func Read(b []byte) (n int, err error)

Read заполняет b криптографически безопасными случайными байтами. Он никогда не возвращает ошибку и всегда полностью заполняет b.

Read вызывает io.ReadFull на Reader и аварийно завершает программу, если возвращается ошибка. По умолчанию Reader использует операционные API, которые, как задокументировано, никогда не возвращают ошибку, за исключением старых систем Linux.

Пример

Код:

// Note that no error handling is necessary, as Read always succeeds.
key := make([]byte, 32)
rand.Read(key)

func Text 1.24

func Text() string

Text возвращает криптографически случайную строку, используя стандартный алфавит RFC 4648 base32, для использования, когда необходима секретная строка, токен, пароль или другая строка. Результат содержит по меньшей мере 128 бит случайности, достаточно для предотвращения атак методом перебора и для того, чтобы вероятность коллизий была ничтожно мала. Будущая версия может возвращать более длинные строки по мере необходимости, чтобы сохранить эти свойства.

© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/crypto/rand/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API