HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2020/01/11

Visual Studio 2013の C# .NETで Hash計算処理をする方法のサンプルプログラム Visual Studio 2013の C# .NETで Hash計算処理をする方法のサンプルプログラム

(HashAlgorithm.TransformBlockを使用すると巨大ファイル等でハッシュ計算の進行状況の進捗を取得できます)

Tags: [Windows], [無人インストール]




● Microsoft Visual Studio 2013の C# .NETで RSA暗号処理する方法、OpenSSLとの連携方法

2020/01/11
Visual Studio 2013の .NET C#で RSA暗号処理する方法、OpenSSLとの連携方法
Visual Studio 2013の .NET C#で RSA暗号処理する方法、OpenSSLとの連携方法

  C# .NETで公開鍵暗号方式の RSA暗号処理と OpenSSLと連携する方法を解説


● Microsoft Visual Studio 2013の C# .NETで SHA-256 Hash計算処理をする方法のサンプルプログラム

HashAlgorithm.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) メソッド
 入力バイト配列の指定した領域のハッシュ値を計算し、入力バイト配列の指定した領域を出力バイト配列の指定した領域にコピーします。

 HashAlgorithm.TransformBlockを使用するとハッシュ値の計算の途中経過を取得可能になります。
 巨大ファイル等で進行状況の進捗を取得できます。

Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

 // https://docs.microsoft.com/ja-jp/dotnet/api/system.security.cryptography.hashalgorithm.transformblock?view=netframework-4.8
using System.Security.Cryptography;

namespace TestSHA256Managed
{
    class Program
    {
        static void Main(string[] args)
        {
            RandomNumberGenerator rnd = RandomNumberGenerator.Create();

            byte[] input = new byte[20];
            rnd.GetBytes(input);

            Console.WriteLine("Input        : {0}\n", BytesToStr(input));
            PrintHash(input);
            PrintHashOneBlock(input);
            PrintHashMultiBlock(input, 1);
            PrintHashMultiBlock(input, 2);
            PrintHashMultiBlock(input, 3);
            PrintHashMultiBlock(input, 5);
            PrintHashMultiBlock(input, 10);
            PrintHashMultiBlock(input, 11);
            PrintHashMultiBlock(input, 19);
            PrintHashMultiBlock(input, 20);
            PrintHashMultiBlock(input, 21);
        }

        public static string BytesToStr(byte[] bytes)
        {
            StringBuilder str = new StringBuilder();

            for (int i = 0; i < bytes.Length; i++)
                str.AppendFormat("{0:X2}", bytes[i]);

            return str.ToString();
        }

        public static void PrintHash(byte[] input)
        {
            SHA256Managed sha = new SHA256Managed();
            Console.WriteLine("ComputeHash  : {0}", BytesToStr(sha.ComputeHash(input)));
        }

        public static void PrintHashOneBlock(byte[] input)
        {
            SHA256Managed sha = new SHA256Managed();
            sha.TransformFinalBlock(input, 0, input.Length);
            Console.WriteLine("FinalBlock   : {0}", BytesToStr(sha.Hash));
        }

        public static void PrintHashMultiBlock(byte[] input, int size)
        {
            SHA256Managed sha = new SHA256Managed();
            int offset = 0;

            while (input.Length - offset >= size)
                offset += sha.TransformBlock(input, offset, size, input, offset);

            sha.TransformFinalBlock(input, offset, input.Length - offset);
            Console.WriteLine("MultiBlock {0:00}: {1}", size, BytesToStr(sha.Hash));
        }
    }
}


●実行結果
> TestSHA256Managed.exe
Input        : 41EE0AD381970039B1AFA8739F3079A225E08C81

ComputeHash  : 87EC169316C25077905A76341F01961763876595A9671C46252D2D12FAF5DC5B
FinalBlock   : 87EC169316C25077905A76341F01961763876595A9671C46252D2D12FAF5DC5B
MultiBlock 01: 87EC169316C25077905A76341F01961763876595A9671C46252D2D12FAF5DC5B
MultiBlock 02: 87EC169316C25077905A76341F01961763876595A9671C46252D2D12FAF5DC5B
MultiBlock 03: 87EC169316C25077905A76341F01961763876595A9671C46252D2D12FAF5DC5B
MultiBlock 05: 87EC169316C25077905A76341F01961763876595A9671C46252D2D12FAF5DC5B
MultiBlock 10: 87EC169316C25077905A76341F01961763876595A9671C46252D2D12FAF5DC5B
MultiBlock 11: 87EC169316C25077905A76341F01961763876595A9671C46252D2D12FAF5DC5B
MultiBlock 19: 87EC169316C25077905A76341F01961763876595A9671C46252D2D12FAF5DC5B
MultiBlock 20: 87EC169316C25077905A76341F01961763876595A9671C46252D2D12FAF5DC5B
MultiBlock 21: 87EC169316C25077905A76341F01961763876595A9671C46252D2D12FAF5DC5B



Tags: [Windows], [無人インストール]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

OpenSSLコマンドを使って RSA暗号処理する方法
OpenSSLコマンドを使って RSA暗号処理する方法

  OpenSSLコマンドで公開鍵暗号方式の RSA暗号処理する方法を解説

Java言語で RSA暗号処理する方法、OpenSSLとの連携方法、Androidにも対応
Java言語で RSA暗号処理する方法、OpenSSLとの連携方法、Androidにも対応

  Java言語で公開鍵暗号方式の RSA暗号処理と OpenSSLと連携する方法を解説

Visual Studio 2013の .NET C#で RSA暗号処理する方法、OpenSSLとの連携方法
Visual Studio 2013の .NET C#で RSA暗号処理する方法、OpenSSLとの連携方法

  C# .NETで公開鍵暗号方式の RSA暗号処理と OpenSSLと連携する方法を解説

PHP言語で RSA暗号処理する方法、OpenSSLとの連携方法
PHP言語で RSA暗号処理する方法、OpenSSLとの連携方法

  PHP言語で 公開鍵暗号方式の RSA暗号処理と OpenSSLと連携する方法を解説

GO言語で RSA暗号処理する方法、OpenSSLとの連携方法
GO言語で RSA暗号処理する方法、OpenSSLとの連携方法

  GO言語で 公開鍵暗号方式の RSA暗号処理と OpenSSLと連携する方法を解説

Visual Studio 2013の .NET C#で UTF-8対応 QRコード生成・読取アプリを作成する方法、ZXing.Net QR Codeライブラリを使用
Visual Studio 2013の .NET C#で UTF-8対応 QRコード生成・読取アプリを作成する方法、ZXing.Net QR Codeライブラリを使用

  .NETで UTF-8対応 QRコード作成・解読アプリを作成、ILMergeで dllを exeに合体する方法

C# .NETで ZIPファイル解凍ツール UnZipをソースリスト 1行で自作する方法、Windows .NET専用
C# .NETで ZIPファイル解凍ツール UnZipをソースリスト 1行で自作する方法、Windows .NET専用

  Visual Studio 2013の C# .NET 4.5で ZipFile.ExtractToDirectoryを使い、UnZip解凍ツールを作成

Visual Studio 2013に Windows 10 SDK + UwpDesktopで UWPの機能を素の Windowsアプリから使用
Visual Studio 2013に Windows 10 SDK + UwpDesktopで UWPの機能を素の Windowsアプリから使用

  VS2013に Win 10 SDKをインストールして Uwp Desktopで UWPの機能を従来の Windowsアプリで動かす

Visual Studio 2013の C# .NETで 日本語対応の OCR文字認識アプリを自作する方法
Visual Studio 2013の C# .NETで 日本語対応の OCR文字認識アプリを自作する方法

  オフライン環境で動作可能な 世界各国語対応の OCR文字認識アプリを C# .NETで作成、MS製 OCRライブラリを使用

Visual Studio 2013の C#で日本語対応の手書き文字認識アプリを自作する方法
Visual Studio 2013の C#で日本語対応の手書き文字認識アプリを自作する方法

  オフライン環境で動作する世界各国語対応の手書き文字認識アプリを作成、MS製 手書き認識ライブラリを使用

Open XML SDKを使用して Officeのファイルを C#で自在に操る方法
Open XML SDKを使用して Officeのファイルを C#で自在に操る方法

  Microsoft Officeのファイルをプログラムで生成したり直接中身の読み取りができます

Visual Studioの各バージョンと開発できる .NET Frameworkの各バージョンのまとめ
Visual Studioの各バージョンと開発できる .NET Frameworkの各バージョンのまとめ

  .Microsoft.NET Framework Developer Packの各バージョンのダウンロードまとめ。言語パック等

Windows 10対応 Microsoft Speech使用の音声認識アプリ
Windows 10対応 Microsoft Speech使用の音声認識アプリ

  SpeechRecognizeApp 音声認識エンジンを使用してマイク入力の音声を認識します

Windows 10の音声合成エンジンを使用して入力した文字列を喋る & Waveファイル書き出し
Windows 10の音声合成エンジンを使用して入力した文字列を喋る & Waveファイル書き出し

  SpeechApp Windows 10用 Speech 音声合成 Text-to-Speech TTSのアプリ

Visual Studioの C#や MFC C++用のサンプルアプリのリンク集
Visual Studioの C#や MFC C++用のサンプルアプリのリンク集

  Visual Studioの C#や MFC C++でアプリを作る時の参考資料として

Windowsの Input Method Manager IMEや TSF Text Services Frameworkの公式情報源のまとめ
Windowsの Input Method Manager IMEや TSF Text Services Frameworkの公式情報源のまとめ

  Windowsで IME Input Method Manager関連のアプリを作成する時の情報 ImeTrayもこの辺を必死に読んだ

Visual Studioの C#で開発した .Netアプリの難読化をする方法
Visual Studioの C#で開発した .Netアプリの難読化をする方法

  C#で開発した .Netアプリの難読化は必須事項です、素の状態では簡単に内部を解析されます

Visual Studioの C#で開発した .Netアプリを逆コンパイルして、中身の実装を覗き見る方法
Visual Studioの C#で開発した .Netアプリを逆コンパイルして、中身の実装を覗き見る方法

  C#で開発した .Netアプリは比較的簡単に元のソースコードに戻せます

Visual Studio 2019 Professional v16.4を無人インストールする方法、完全自動でインストール
Visual Studio 2019 Professional v16.4を無人インストールする方法、完全自動でインストール

  VS2019 v16.4を完全オフラインインストール&コンポーネント選択の事前設定で自動インストールする

Visual Studio 2013 Professionalを無人インストールする方法、完全自動でインストール
Visual Studio 2013 Professionalを無人インストールする方法、完全自動でインストール

  VS2013を Update 5適用済みとコンポーネント選択の事前設定でインストール時の手間を省く




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2020 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/software/visual_c_sharp_hash_calculation/