sha1

備考: このモジュールを使うには std/sha1 をインポートしてください。

SHA-1 (Secure Hash Algorithm 1) はメッセージダイジェストとして知られている 160-bit (20-byte) によるハッシュ値の入力と生成を処理する暗号化ハッシュ関数です。

import std/sha1

let accessName = secureHash("John Doe")
assert $accessName == "AE6E4D1209F17B460503904FAD297B31E9CF6362"
import std/sha1

let
  a = secureHashFile("myFile.nim")
  b = parseSecureHash("10DFAEBF6BFDBC7939957068E2EFACEC4972933C")

if a == b:
  echo "Files match"

関連:

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: [].}
  ソース 編集
proc update(ctx: var Sha1State; data: openArray[char]) {...}{.raises: [], tags: [].}
  ソース 編集
proc finalize(ctx: var Sha1State): Sha1Digest {...}{.raises: [], tags: [].}
  ソース 編集
proc secureHash(str: openArray[char]): SecureHash {...}{.raises: [], tags: [].}

str から SecureHash を生成します。

関連:

用例:

let hash = secureHash("Hello World")
assert hash == parseSecureHash("0A4D55A8D778E5022FAB701977C5D840BBC486D0")
  ソース 編集
proc secureHashFile(filename: string): SecureHash {...}{.raises: [IOError],
    tags: [ReadIOEffect].}

ファイルから SecureHash を生成します。

関連:

  ソース 編集
proc `$`(self: SecureHash): string {...}{.raises: [], tags: [].}

SecureHash 形式の文字列を返します。

関連:

用例:

let hash = secureHash("Hello World")
assert $hash == "0A4D55A8D778E5022FAB701977C5D840BBC486D0"
  ソース 編集
proc parseSecureHash(hash: string): SecureHash {...}{.raises: [ValueError], tags: [].}

文字列 hashSecureHash へ変換します。

関連:

用例:

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
  ソース 編集