1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ハッシュ値を取得・検証するWindows Formアプリ(.NET Core, C#)を作成・GitHubで公開してみた

Posted at

タイトル通りです。
実は以前にこういう記事を書きました。

何でまたハッシュとか思われそうですが、C#とアプリ開発の勉強もあるのですが、ときどき使用することがあるので、いちいちコマンドラインで出さなくても良いようにするためです。

公開してる場所

↓のGitHubに置いています。
まぁ、フリーソフトというかオープンソースです。

screenshot.png

Git(GitHubも)の使い方、最初は全然分かりませんでしたが、徐々に使い慣れてきました。

git initで新規作成して、
git config user.nameでユーザー名を登録して(メールアドレスも)、
git remote add origin ...して、
git addでファイル追加して、
git commit -m コメントでコミットして、
git push ...という流れでしょうか…。
(事前にGitHubのリポジトリ作成する必要あるけど)

除外したいファイルを事前に指定する方法が知りたいのですが、まだそこには至っていません。

機能

  • 入力ソースは文字列・ファイル両方に対応
  • 比較ができる(ダウンロードしたファイルのハッシュ値突合で使える)
  • .NETで利用できる主要なハッシュ値には対応した(MD5, SHA1, SHA256, SHA386, SHA512)。
  • 引数にファイルパスを指定可能(起動時にハッシュ値は自動で出力)。
  • TextChangedイベントで、リアルタイムで出力する(いちいちボタンを押すのが面倒だから)
  • ファイルはドラッグアンドドロップでも指定可能

基本的には.NET Coreの機能を使用してるだけのGUIラッパーだと思います。それを使いやすくしたものです(使いやすくできてるといいのだけど)。

開発にあたっての所感とか

イベントドリブンやっぱり面倒

コンソールアプリと違って、イベントドリブンだと処理のパターンが単純ではないので、中身のロジックをどうすればすっきりするか、結構悩みます。

まぁ、前職でもVB.NETで開発はしていましたが、どうしてもごちゃごちゃしてしまうのが難点(スキル不足かもしれませんが)。

ドラッグアンドドロップの実装も初めてしてみました

2つのイベントを使用して書かないといけないんですね…。何気にコードがごちゃごちゃします。

        private void txtCharas_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.All;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }

        private void txtCharas_DragDrop(object sender, DragEventArgs e)
        {
            string[] dropdata =  (string[])e.Data.GetData(DataFormats.FileDrop);

            if (dropdata.Length > 0)
                this.txtCharas.Text = dropdata[0];
        }

あと、PBKDF2も入れようか迷いましたが、特にパスワード保管用のハッシュ値をわざわざ手作業で作る必要も今のところないので、これは省きました。あと、MD5やSHA256は継承元のクラスが同じですが、PBKDF2については違いますので、追加したら分岐がさらに増えます。

Windowアプリケーションの開発ってもっと楽にならないかなぁ……。WPFとかUWPも使ってはみたいのだけど、前者どうも普及しているかよく分からないし、後者もまだ様子見の段階。

すごく走り書きの記事になりましたが、どうぞ、温かい目で見て頂けると嬉しいです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?