해시 값을 취득·검증하는 Windows Form 앱(.NET Core, C#)을 작성·GitHub에서 공개해 보았다

4904 단어 GitHub.NETC#
제목대로입니다.
실은 이전에 이런 기사를 썼습니다.
  • 해시값을 출력하는 유파를 C#로 실장해 본다(PBKDF2타 대응)

  • 왜 또 해시라든지 생각될 것 같습니다만, C#과 앱 개발의 공부도 있습니다만, 가끔 사용하는 일이 있기 때문에, 일일이 커맨드 라인으로 내놓지 않아도 좋게 하기 위해서입니다.

    공개하는 장소



    ↓의 GitHub에 두고 있습니다.
    뭐, 프리 소프트라고 할까 오픈 소스입니다.
  • GetHash



  • 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도 사용해 보는 것 같지만, 전자 아무것도 보급되고 있는지 잘 모르고, 후자도 아직 모습의 단계.

    몹시 달리기의 기사가 되었습니다만, 아무쪼록, 따뜻한 눈으로 봐 주실 수 있으면 기쁩니다.

    좋은 웹페이지 즐겨찾기