Spec-Zone.ru › Go

Пакет pbkdf2

  • import "crypto/pbkdf2"
  • Обзор
  • Указатель

Обзор

Пакет pbkdf2 реализует функцию выработки ключа PBKDF2, определённую в RFC 8018 (PKCS #5 v2.1).

Функция выработки ключа полезна при шифровании данных на основе пароля или любых других не полностью случайных данных. Она использует псевдослучайную функцию для выработки надёжного ключа шифрования на основе пароля.

Указатель

  • func Key[Hash hash.Hash](h func() Hash, password string, salt []byte, iter, keyLength int) ([]byte, error)

Файлы пакета

pbkdf2.go

func Key 1.24

func Key[Hash hash.Hash](h func() Hash, password string, salt []byte, iter, keyLength int) ([]byte, error)

Key вырабатывает ключ на основе пароля, соли и числа итераций и возвращает значение []byte длиной keyLength, которое можно использовать в качестве криптографического ключа. Ключ вырабатывается методом PBKDF2 с вариантом HMAC и предоставленной хеш-функцией.

Например, чтобы использовать функцию выработки ключа PBKDF2 на основе HMAC-SHA-1, можно получить выработанный ключ, например, для AES-256 (которому нужен ключ длиной 32 байта), выполнив:

dk, err := pbkdf2.Key(sha1.New, "some password", salt, 4096, 32)

Не забудьте использовать надёжную случайную соль. RFC рекомендует использовать не менее 8 байт.

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

keyLength должно быть положительным целым числом в диапазоне от 1 до (2^32 - 1) * h.Size(). Если задать keyLength вне этого диапазона, будет возвращена ошибка.

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

Spec-Zone.ru

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