Spec-Zone.ru › Nim 1

sha1

Примечание: Импортировать std/sha1 для использования этого модуля.

SHA-1 (Secure Hash Algorithm 1) — это криптографическая хеш-функция, которая принимает входные данные и генерирует 160-битное (20-байтное) значение хеша, известное как дайджест сообщения.

Основное использование

Пример:

let accessName = secureHash("John Doe")
assert $accessName == "AE6E4D1209F17B460503904FAD297B31E9CF6362"
let
  a = secureHashFile("myFile.nim")
  b = parseSecureHash("10DFAEBF6BFDBC7939957068E2EFACEC4972933C")

if a == b:
  echo "Files match"

См. также

  • Модуль base64 реализует кодировщик и декодировщик Base64
  • Модуль hashes для эффективных вычислений хеш-значений для различных типов Nim
  • Модуль md5 реализует алгоритм контрольной суммы MD5

Импорты

strutils, endians

Типы

Sha1Digest = array[0 .. 20 - 1, uint8]
Исходный код Редактировать
SecureHash = distinct Sha1Digest
Исходный код Редактировать
Sha1State = object
  count: int
  state: array[5, uint32]
  buf: array[64, byte]
Исходный код Редактировать

Процедуры

proc newSha1State(): Sha1State {...}{.raises: [], tags: [].}

Создает Sha1State.

Если вы используете процедуру secureHash, вызывать эту функцию явно не нужно.

Исходный код Редактировать
proc update(ctx: var Sha1State; data: openArray[char]) {...}{.raises: [], tags: [].}

Обновляет Sha1State значением data.

Если вы используете процедуру secureHash, вызывать эту функцию явно не нужно.

Исходный код Редактировать
proc finalize(ctx: var Sha1State): Sha1Digest {...}{.raises: [], tags: [].}

Завершает Sha1State и возвращает Sha1Digest.

Если вы используете процедуру secureHash, вызывать эту функцию явно не нужно.

Исходный код Редактировать
proc secureHash(str: openArray[char]): SecureHash {...}{.raises: [], tags: [].}

Генерирует SecureHash из str.

См. также:

  • Процедура secureHashFile для генерации SecureHash из файла
  • Процедура parseSecureHash для преобразования строкового hash в SecureHash

Пример:

let hash = secureHash("Hello World")
assert hash == parseSecureHash("0A4D55A8D778E5022FAB701977C5D840BBC486D0")
Исходный код Редактировать
proc secureHashFile(filename: string): SecureHash {...}{.raises: [IOError],
    tags: [ReadIOEffect].}

Генерирует SecureHash из файла.

См. также:

  • Процедура secureHash для генерации SecureHash из строки
  • Процедура parseSecureHash для преобразования строкового hash в SecureHash
Исходный код Редактировать
proc `$`(self: SecureHash): string {...}{.raises: [], tags: [].}

Возвращает строковое представление SecureHash.

См. также:

  • Процедура secureHash для генерации SecureHash из строки

Пример:

let hash = secureHash("Hello World")
assert $hash == "0A4D55A8D778E5022FAB701977C5D840BBC486D0"
Исходный код Редактировать
proc parseSecureHash(hash: string): SecureHash {...}{.raises: [ValueError], tags: [].}

Преобразует строковое hash в SecureHash.

См. также:

  • Процедура secureHash для генерации SecureHash из строки
  • Процедура secureHashFile для генерации SecureHash из файла

Пример:

let
  hashStr = "0A4D55A8D778E5022FAB701977C5D840BBC486D0"
  secureHash = secureHash("Hello World")
assert secureHash == parseSecureHash(hashStr)
Исходный код Редактировать
proc `==`(a, b: SecureHash): bool {...}{.raises: [], tags: [].}
Проверяет, равны ли два значения SecureHash.

Пример:

let
  a = secureHash("Hello World")
  b = secureHash("Goodbye World")
  c = parseSecureHash("0A4D55A8D778E5022FAB701977C5D840BBC486D0")
assert a != b
assert a == c
Исходный код Редактировать

© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/sha1.html

Spec-Zone.ru

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