英語版
このページの英語版を見る
std.digest.md
任意のデータのMD5ハッシュを計算する。MD5ハッシュは16バイトで、チェックサムやCRCのようなものである。
チェックサムやCRCのようなものだが、より堅牢である。
このモジュールはstd.digest で定義されているAPIに準拠している。テンプレートと
テンプレートとOOP APIの違いについては std.digest.
このモジュールは、一般にインポートしている std.digestモジュールとして使用できる。
モジュールとして使用できる。
License:
CTFE ダイジェストはCTFEでは機能しない
Authors:
Piotr Szturmaj, Kai Nacke, Johannes Pfau
The routines and algorithms are derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm.
The routines and algorithms are derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm.
参考文献 MD5に関するウィキペディア
ソース std/digest/md.d
Examples:
//テンプレートAPI import std.digest.md; //データを供給する ubyte[1024] data; MD5 md5; md5.start(); md5.put(data[]); md5.start(); //再度開始する md5.put(data[]); auto hash = md5.finish();
Examples:
//OOP API import std.digest.md; auto md5 = new MD5Digest(); ubyte[] hash = md5.digest("abc"); writeln(toHexString(hash)); // "900150983CD24FB0D6963F7D28E17F72" //給餌データ ubyte[1024] data; md5.put(data[]); md5.reset(); //再度開始する md5.put(data[]); hash = md5.finish();
- struct
MD5
; - テンプレートAPIのMD5実装。 テンプレートAPIとOOP APIの違いについてはstd.digest を参照のこと。Examples:
//簡単な例、md5Ofヘルパー関数を使った文字列のハッシュ化 ubyte[16] hash = md5Of("abc"); //ハッシュ文字列を取得してみよう writeln(toHexString(hash)); // "900150983CD24FB0D6963F7D28E17F72"
Examples://基本APIを使う MD5 hash; hash.start(); ubyte[1024] data; //ここでデータを初期化する hash.put(data); ubyte[16] result = hash.finish();
Examples://テンプレートの機能を使おう: void doSomething(T)(ref T hash) if (isDigest!T) { hash.put(cast(ubyte) 0); } MD5 md5; md5.start(); doSomething(md5); writeln(toHexString(md5.finish())); // "93B885ADFE0DA089CDF634904FD59F71"
- pure nothrow @nogc @trusted void
put
(scope const(ubyte)[]data
...); 例:
MD5 dig; dig.put(cast(ubyte) 0); //シングルubyte dig.put(cast(ubyte) 0, cast(ubyte) 0); //可変長 ubyte[10] buf; dig.put(buf); //バッファ
- pure nothrow @nogc @safe void
start
(); - MD5ダイジェストの(再)初期化に使用する。
注釈: このMD5ダイジェストの実装では、デフォルトの構築後にstartを呼び出す を呼び出す必要はない。startを呼び出す必要があるのは、ダイジェストをリセットするときだけである。
異なるダイジェスト型を扱う一般的なコードは、常にstartを呼び出すべきである。例:
MD5 digest; //digest.start(); //必要ない digest.put(0);
- pure nothrow @nogc @trusted ubyte[16]
finish
(); - 完成したMD5ハッシュを返す。これは startを呼び出す。 内部状態をリセットする。Examples:
//簡単な例 MD5 hash; hash.start(); hash.put(cast(ubyte) 0); ubyte[16] result = hash.finish();
- auto
md5Of
(T...)(Tdata
); - これは std.digest.digestこれは MD5実装を使うための便利な別名である。Examples:
ubyte[16] hash = md5Of("abc"); writeln(hash); // digest!MD5("abc")
- alias
MD5Digest
= std.digest.WrapperDigest!(MD5).WrapperDigest; - OOP APIのMD5実装。 テンプレートとOOP APIの違いについてはstd.digest を参照のこと。これは std.digest.WrapperDigest!MD5の別名である。 の別名である。Examples:
//Digest.digestヘルパー関数を使用して文字列をハッシュする簡単な例 auto md5 = new MD5Digest(); ubyte[] hash = md5.digest("abc"); //ハッシュ文字列を取得してみよう writeln(toHexString(hash)); // "900150983CD24FB0D6963F7D28E17F72"
Examples://OOPの機能を使ってみよう: void test(Digest dig) { dig.put(cast(ubyte) 0); } auto md5 = new MD5Digest(); test(md5); //カスタム・バッファを使おう: ubyte[16] buf; ubyte[] result = md5.finish(buf[]); writeln(toHexString(result)); // "93B885ADFE0DA089CDF634904FD59F71"
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku