유저의 비밀번호를 DB에 저장할 때 암호화
비밀번호 암호화 저장
public static string HashingPassword(string originPassword)
{
string saltedPassword = originPassword + saltValue;
using (SHA256 sha256Hash = SHA256.Create()) // using 구문 안에 SHA256 객체 선언해서 자동으로 dispose 호출
{
// 솔트값을 붙인 패스워드를 바이트 배열로 변환하여 해시 계산
byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(saltedPassword));
// 바이트 배열을 문자열로 변환
StringBuilder builder = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
builder.Append(bytes[i].ToString("x2")); // 16진수로 변환
}
return builder.ToString(); // return이 실행되기 전에 using문이 dispose함
}
}
인증토큰 생성
public static string MakeAuthToken(int userId)
{
string saltedToken = userId.ToString() + saltValue;
using (SHA256 sha256Hash = SHA256.Create())
{
byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(saltedToken));
StringBuilder builder = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
builder.Append(bytes[i].ToString("x2"));
}
return builder.ToString();
}
}
회원가입 시 중복 확인