Machineboy空
[Kata] Crack the PIN 본문
문제요약
주어진 MD5 해시값과 일치하는 값을 생성하는 5자리 PIN을 출력하라!
- 입력: MD5 해시값
- 출력: 5자리 PIN
* 해시 : 사과(입력) → 믹서기에 갈기(해시 함수) → 사과주스(해시 값)
* MD5 : 해시 함수의 한 종류
* PIN : 보통 4~6자리의 짧은 숫자 비밀번호
https://www.codewars.com/kata/5efae11e2d12df00331f91a6/train/csharp
Codewars - Achieve mastery through coding practice and developer mentorship
A coding practice website for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages!
www.codewars.com
난이도
6 kyu
풀이 포인트
- 브루트포스
00000 ~ 99999까지의 경우의 수와 모두 비교
REVIEW
해시 값과 해시 함수의 개념이 헷갈렸다.
CODE
using System.Security.Cryptography;
using System.Text;
using System;
public class CodeWars {
public static string crack(string hash) {
using(MD5 md5 = MD5.Create()){
for(int i = 0; i <= 99999; i++){
string pin = i.ToString("D5");
byte[] inputBytes = Encoding.ASCII.GetBytes(pin);
byte[] hashBytes = md5.ComputeHash(inputBytes);
string md5Hash = BitConverter.ToString(hashBytes).Replace("-","").ToLower();
if(md5Hash == hash) return pin;
}
}
return "";
}
}'Computer > Coding Test' 카테고리의 다른 글
| [Kata] Find the odd int (0) | 2025.11.19 |
|---|---|
| 連想配列(query) C#編 (0) | 2025.06.10 |
| Day20: プログラマー必携!2025年バイブコーディング(vibe coding)ツール完全ガイド (0) | 2025.06.06 |
| 「RPG C#編」 (0) | 2025.06.04 |
| クラスの継承 (0) | 2025.06.03 |