Golang は、強力に型指定され、高い効率と同時実行性を備えた静的にコンパイルされた言語です。 Golang には、さまざまな目的に使用できる豊富な標準ライブラリとサードパーティ ライブラリがあります。この記事では、Golang を使用してファイルをハッシュに変換する方法を説明します。
ハッシュは、任意の長さのデータを固定長の暗号化文字列にマッピングするテクノロジーです。ハッシュ アルゴリズムは、指定されたデータをより小さい固定の不可逆的な値にマッピングでき、ハッシュ アルゴリズムの結果はデータの整合性検証やデジタル署名などに使用できます。多くのシナリオでは、ファイルのダウンロード時の検証やファイル送信の信頼性など、ファイルの整合性を検証するためにハッシュ アルゴリズムを使用する必要があります。
Golang の標準ライブラリは、MD5、SHA1、SHA256 などのさまざまなハッシュ アルゴリズムを提供します。これらのハッシュ アルゴリズムはすべて hash.Hash インターフェイスを継承しているため、同じ方法で操作できます。
以下は、Golang を使用してファイルの MD5 ハッシュ値を計算する方法を示す簡単なサンプル コードです:
package main import ( "crypto/md5" "fmt" "io" "os" ) func main() { file, err := os.Open("testfile.txt") if err != nil { panic(err) } defer file.Close() h := md5.New() if _, err := io.Copy(h, file); err != nil { panic(err) } fmt.Printf("MD5 Hash: %x", h.Sum(nil)) }
このサンプル コードでは、os パッケージの Open メソッドを使用します。ファイルtestfile.txtが開きます。次に、md5 パッケージの New メソッドを使用して md5 ハッシュ オブジェクト h を作成し、io パッケージの Copy メソッドを使用してファイルの内容をハッシュ オブジェクトにコピーしました。最後に、ハッシュ オブジェクトの Sum メソッドを使用してハッシュ値を計算し、%x 形式で出力します。
MD5 に加えて、SHA1 や SHA256 などのハッシュ アルゴリズムも使用できます。md5.New を sha1.New または sha256.New に置き換えるだけです。たとえば、サンプル コードの MD5 ハッシュ値を計算する部分を変更して、SHA256 ハッシュ値を計算することができます。
h := sha256.New() if _, err := io.Copy(h, file); err != nil { panic(err) } fmt.Printf("SHA256 Hash: %x", h.Sum(nil))
単一ファイルのハッシュ値の計算に加えて、Golang の標準ライブラリでは、次のような関数も提供されています。ディレクトリ内のすべてのファイルのハッシュを簡単に計算できるメソッド。たとえば、ファイルパス パッケージの Walk メソッドを使用して、次のようにディレクトリとサブディレクトリを走査し、すべてのファイルのハッシュ値を計算できます。
package main import ( "crypto/md5" "fmt" "io" "os" "path/filepath" ) func main() { root := "." err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error { if err != nil { return err } if !info.Mode().IsRegular() { return nil } file, err := os.Open(path) if err != nil { return err } defer file.Close() h := md5.New() if _, err := io.Copy(h, file); err != nil { return err } fmt.Printf("%x %s ", h.Sum(nil), path) return nil }) if err != nil { panic(err) } }
このサンプル コードでは、Walk メソッドを次のように使用します。ファイルパス パッケージ 現在のディレクトリとそのサブディレクトリが走査され、すべてのファイルの MD5 ハッシュ値が計算されて出力されます。 Walk メソッドのコールバック関数では、まず現在のファイルが通常のファイルかどうかを判定し、そうでない場合は nil を返し、そうでない場合はファイルを開いてハッシュ値を計算して出力します。
単一ファイルとディレクトリ内のすべてのファイルのハッシュ値を計算することに加えて、ファイルのハッシュ値をチャンク単位で計算することもできます。この方法は、ファイルをいくつかのブロックに分割し、各ブロックのハッシュ値を個別に計算し、最後にすべてのブロックのハッシュ値を連結してファイル全体のハッシュ値を計算することで、大きなファイルを処理する場合に使用できます。
要約すると、Golang は、ファイルのハッシュ値を簡単に計算できる、ファイルを操作するためのハッシュ アルゴリズムとメソッドを豊富に提供します。単一ファイルのハッシュ値を計算する場合でも、ディレクトリ内のすべてのファイルを計算する場合でも、大きなファイルのハッシュ値をチャンクに分けて処理する場合でも、Golang はシンプルで効率的なソリューションを提供します。
以上がハッシュする golang ファイルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

goisidealforforbeginnersandsutable forcloudnetworkservicesduetoitssimplicity、andconcurrencyfeatures.1)installgofromtheofficialwebsiteandverify with'goversion'.2)

開発者は、次のベストプラクティスに従う必要があります。1。ゴルチンを慎重に管理して、リソースの漏れを防ぎます。 2。同期にチャネルを使用しますが、過剰使用を避けます。 3。同時プログラムのエラーを明示的に処理します。 4. GomaxProcsを理解して、パフォーマンスを最適化します。これらのプラクティスは、リソースの効果的な管理、適切な同期の実装、適切なエラー処理、パフォーマンスの最適化を確保し、それによりソフトウェアの効率と保守性を向上させるため、効率的で堅牢なソフトウェア開発には重要です。

goexcelsinproductionduetoitsperformanceandsimplicity、butrequirescarefulmanagement of sscalability、errorhandling、andresources.1)dockerusesgofores goforesesgorusesgolusesgotainermanagement.2)uberscalesmicroserviceswithgo、facingchallengesinservicememameme

標準のエラーインターフェイスが限られた情報を提供し、カスタムタイプがコンテキストと構造化された情報を追加できるため、エラータイプをカスタマイズする必要があります。 1)カスタムエラータイプには、エラーコード、場所、コンテキストデータなどを含めることができます。2)デバッグ効率とユーザーエクスペリエンスを改善する3)ただし、その複雑さとメンテナンスコストに注意する必要があります。

goisidealforbuildingscalablessystemsduetoitssimplicity、効率性、およびビルド・インコンカレンシsupport.1)

intionSingOrunautomaticallyは()andareuseforstingupenments andinitializingvariables.usemforsimpletasks、回避効果を回避し、測定可能性を測定することを検討します。

goinitializeSpackages intheordertheyareimport extionsitions withinitionsiteintheirdefinition ordord、およびfilenamesdetermineTheOordCrossMultiplefiles.thisprocesccanbeandeanded by -dependenciessedieSiesは、このマイレアドカンフレシニティン化の対象となります


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









