ホームページ  >  記事  >  バックエンド開発  >  Go言語文書解析:crypto/hmac.新機能でHMACハッシュ計算を実装

Go言語文書解析:crypto/hmac.新機能でHMACハッシュ計算を実装

PHPz
PHPzオリジナル
2023-11-04 10:02:26871ブラウズ

Go言語文書解析:crypto/hmac.新機能でHMACハッシュ計算を実装

Go 言語ドキュメント分析: crypto/hmac.New 関数は HMAC ハッシュ計算を実装し、特定のコード例が必要です

HMAC (ハッシュベースのメッセージ認証コード) は、ハッシュ関数と秘密キーを使用してメッセージの整合性を検証するアルゴリズム。 Go 言語の crypto/hmac パッケージでは、New 関数を使用して HMAC インスタンスを簡単に作成し、ハッシュ計算を実行できます。この記事では、crypto/hmac.New 関数の使用法を詳細に分析し、その機能と使用法を示す具体的なコード例を示します。

まず、crypto/hmac.New 関数の関数シグネチャを見てみましょう:

func New(h func() hash.Hash, key []byte) hash.Hash

この関数は 2 つのパラメーターを受け入れます。最初のパラメーターは、指定されたハッシュ関数インスタンスの作成に使用される関数タイプです。2 番目のパラメーターは、HMAC 計算のキーとして使用されるバイト配列です。この関数は、ハッシュ化できる hash.Hash 型の値を返します。

それでは、crypto/hmac.New 関数をどのように使用するのでしょうか?次の手順で HMAC ハッシュ計算を完了できます。

まず、crypto/hmac パッケージとハッシュ パッケージをインポートする必要があります:

import (

"crypto/hmac"
"hash"

)

次に、 HMAC インスタンスを作成するためのハッシュ関数とキー。ここでは、ハッシュ関数として SHA256 を選択し、ランダムなキーを生成します。

func createHMAC(data []byte, key []byte) []byte {

h := hmac.New(sha256.New, key)
h.Write(data)
return h.Sum(nil)

}

上記のコードの createHMAC 関数は、HMAC の計算に必要なデータとキーという 2 つのパラメーターを受け入れます。関数内では、 hmac.New 関数を使用して SHA256 HMAC インスタンスが作成され、渡されたキーを使用して初期化されます。次に、h.Write メソッドを使用して HMAC インスタンスにデータを書き込み、h.Sum(nil) メソッドを使用して計算されたハッシュ値を取得します。

次に、この createHMAC 関数を使用して HMAC ハッシュ値を計算します。たとえば、次のように呼び出すことができます:

func main() {

data := []byte("Hello, HMAC!")
key := []byte("MySecretKey")
result := createHMAC(data, key)
fmt.Printf("%x

", result)
}

上記のコードでは、文字列データとキー。次に、createHMAC 関数を呼び出して HMAC のハッシュ値を計算し、fmt.Printf 関数を使用して結果を 16 進形式で出力します。

要約すると、crypto/hmac を通じて.New 関数を使用すると、HMAC ハッシュ計算を簡単に実装できます。ハッシュ関数とキーを選択し、上記の手順に従って関数を呼び出すだけで計算が完了します。実際のアプリケーションでは、HMAC アルゴリズムは、HMAC アルゴリズムを検証するためによく使用されます。データ プロパティの整合性だけでなく、認証トークンの生成などのセキュリティ関連機能もサポートします。

この記事が、crypto/hmac.New 関数の使用法を理解するのに役立つことを願っています。引き続き探索してください。 Go 言語のドキュメントは、このプログラミング言語の機能と特徴をより適切に適用して理解するために役立ちます。

以上がGo言語文書解析:crypto/hmac.新機能でHMACハッシュ計算を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。