ホームページ バックエンド開発 Golang Go 言語ドキュメントの crypto/md5.Sum 関数をマスターして、MD5 ハッシュ計算を実装する

Go 言語ドキュメントの crypto/md5.Sum 関数をマスターして、MD5 ハッシュ計算を実装する

Nov 04, 2023 am 09:27 AM
言語を移動 crypto/md mdハッシュ計算

Go 言語ドキュメントの crypto/md5.Sum 関数をマスターして、MD5 ハッシュ計算を実装する

MD5 ハッシュ計算を実装するには、Go 言語ドキュメントの crypto/md5.Sum 関数をマスターします。具体的なコード例が必要です。

今日の情報化時代では、データ セキュリティが重要です。ますます注目を集めるようになりました。ハッシュ アルゴリズムは、一般的に使用されるデータ セキュリティ保護方法の 1 つです。 MD5 (Message Digest Algorithm 5) は一般的なハッシュ アルゴリズムの 1 つで、任意の長さのデータを、通常 32 個の 16 進文字で構成される固定長のダイジェスト文字列に変換できます。

Go 言語は、シンプル、高速、安全なプログラミング言語であり、MD5 ハッシュ計算を実装できる標準ライブラリ crypto/md5 を提供しています。この記事では、crypto/md5Sum 関数を使用して MD5 ハッシュを計算する方法を紹介します。

まず、crypto/md5 ライブラリを導入する必要があります。

import (
    "crypto/md5"
    "fmt"
)
ログイン後にコピー

次に、md5.Sum 関数を使用して、 MD5ハッシュ。この関数はバイト配列を入力として受け取り、MD5 ハッシュの結果を表す長さ 16 のバイト配列を返します。

func main() {
    data := []byte("Hello, MD5!")

    hashed := md5.Sum(data)

    fmt.Printf("MD5哈希值为:%x
", hashed)
}
ログイン後にコピー

上記のコードでは、[]byte を使用して文字列 "Hello, MD5!" をバイト配列に変換します。次に、md5.Sum 関数を呼び出してバイト配列に対して MD5 ハッシュ計算を実行し、計算結果を hashed 変数に保存します。

最後に、fmt.Printf 関数を使用して、MD5 ハッシュ値を 16 進文字列として出力します。

上記のコードを実行すると、次の出力が得られます:

MD5哈希值为:f152bde493154ac14cb2468a101caeed
ログイン後にコピー

これは、入力文字列 "Hello, MD5!" の MD5 ハッシュ値です。入力データの長さに関係なく、MD5 ハッシュ値は常に 16 バイトのみであることに注意してください。

上記のサンプル コードに加えて、crypto/md5 ライブラリは、新しい MD5 ハッシュを作成するための md5.New 関数などの他の関数も提供します。オブジェクトの場合、md5.Sum 関数はデータ全体を 1 回しかハッシュできませんが、md5.New 関数は最初に MD5 ハッシュ オブジェクトを作成してから、そのオブジェクトを複数回呼び出すことができます。 Write メソッドを使用してハッシュ値を段階的に計算します。

func main() {
    data := []byte("Hello, ")
    data2 := []byte("MD5!")

    hasher := md5.New()
    hasher.Write(data)
    hasher.Write(data2)
    hashed := hasher.Sum(nil)

    fmt.Printf("MD5哈希值为:%x
", hashed)
}
ログイン後にコピー

上記のコードでは、ハッシュ計算用のデータを一度に全データを入力するのではなく、hasher.Writeメソッドを分割して呼び出して徐々に入力しています。

要約すると、Go 言語ドキュメントの crypto/md5 ライブラリの Sum 関数を学習して習得することで、MD5 ハッシュ計算を簡単に実装できるようになります。データのセキュリティを確保する必要があるシナリオで。このようにして、データの整合性とセキュリティをより適切に保護できます。

以上がGo 言語ドキュメントの crypto/md5.Sum 関数をマスターして、MD5 ハッシュ計算を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

GOの浮動小数点番号操作に使用されるライブラリは何ですか? GOの浮動小数点番号操作に使用されるライブラリは何ですか? Apr 02, 2025 pm 02:06 PM

GO言語の浮動小数点数操作に使用されるライブラリは、精度を確保する方法を紹介します...

Go's Crawler Collyのキュースレッドの問題は何ですか? Go's Crawler Collyのキュースレッドの問題は何ですか? Apr 02, 2025 pm 02:09 PM

Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

Goでは、Printlnとstring()関数を備えた文字列を印刷すると、なぜ異なる効果があるのですか? Goでは、Printlnとstring()関数を備えた文字列を印刷すると、なぜ異なる効果があるのですか? Apr 02, 2025 pm 02:03 PM

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

Redisストリームを使用してGO言語でメッセージキューを実装する場合、user_idタイプの変換の問題を解決する方法は? Redisストリームを使用してGO言語でメッセージキューを実装する場合、user_idタイプの変換の問題を解決する方法は? Apr 02, 2025 pm 04:54 PM

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか? Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか? Apr 02, 2025 pm 05:09 PM

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか?ゴーランドを使用するためにGolandを使用する場合、多くの開発者はカスタム構造タグに遭遇します...

GOのどのライブラリが大企業によって開発されていますか、それとも有名なオープンソースプロジェクトによって提供されていますか? GOのどのライブラリが大企業によって開発されていますか、それとも有名なオープンソースプロジェクトによって提供されていますか? Apr 02, 2025 pm 04:12 PM

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

GO言語の「VAR」と「タイプ」キーワード定義構造の違いは何ですか? GO言語の「VAR」と「タイプ」キーワード定義構造の違いは何ですか? Apr 02, 2025 pm 12:57 PM

GO言語で構造を定義する2つの方法:VARとタイプのキーワードの違い。構造を定義するとき、GO言語はしばしば2つの異なる執筆方法を見ます:最初...

SQL.Openを使用するとき、DSNが空に渡されたときにエラーを報告しないのはなぜですか? SQL.Openを使用するとき、DSNが空に渡されたときにエラーを報告しないのはなぜですか? Apr 02, 2025 pm 12:54 PM

SQL.Openを使用する場合、DSNがエラーを報告しないのはなぜですか? GO言語では、sql.open ...

See all articles