데이터 무결성을 확인하거나 비밀번호를 안전하게 저장할 때 암호화 해시(Checksum)가 중요합니다. 이번 글에서는 C#에서 해시를 생성하고, 두 해시 값을 비교하는 간단한 방법을 알아봅니다.
1. SHA256 해시 생성
SHA256은 널리 쓰이는 해시 알고리즘 중 하나로, 고정된 256비트 크기의 해시 값을 생성합니다.
using System.Security.Cryptography;
using System.Text;
public static string ComputeSha256Hash(string rawData)
{
using (SHA256 sha256Hash = SHA256.Create())
{
byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(rawData));
var builder = new StringBuilder();
foreach (byte b in bytes)
{
builder.Append(b.ToString("x2"));
}
return builder.ToString();
}
}
2. 해시 값 비교
원본 문자열의 해시와 비교 대상 해시를 생성한 뒤, 문자열로 직접 비교하면 무결성을 검증할 수 있습니다.
bool VerifyHash(string original, string hashToCompare)
{
string originalHash = ComputeSha256Hash(original);
return String.Equals(originalHash, hashToCompare, StringComparison.OrdinalIgnoreCase);
}
3. 사용 예시
string data = "Hello World!";
string hash = ComputeSha256Hash(data);
bool isMatch = VerifyHash("Hello World!", hash); // true
bool isMismatch = VerifyHash("Hello", hash); // false
이처럼 C#에서 SHA256 해시를 생성하고 비교하는 방법을 통해 데이터 일치 여부를 안전하게 확인할 수 있습니다.
'C#' 카테고리의 다른 글
| C# DateOnly와 TimeOnly 타입 활용 (0) | 2026.06.01 |
|---|---|
| C# IDisposable을 통한 비관리 리소스 해제 사례 (1) | 2026.06.01 |
| C# 종속성 주입(DI) 패턴과 IServiceProvider 활용 (0) | 2026.05.30 |
| C# System.FormattableString으로 다국어 문자열 처리 (0) | 2026.05.30 |
| C# AttributeTargets로 애트리뷰트 적용 범위 제어 (0) | 2026.05.29 |