Computer/Coding Test
[Kata] Crack the PIN
안녕도라
2026. 1. 6. 13:47
문제요약
주어진 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 "";
}
}