# 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"

関連:

- 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: [].}

  ソース 編集

    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` を生成します。

  関連:

  - 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

  ソース 編集