2012-04-22 21 views
0

このハッシュ方法の塩を保存する方法はありますか?私はそれを行う方法を知らない?ハッシュ値を保存する

ありがとうございました。

public void AddStudent(Student student) 
    { 
     student.StudentID = (++eCount).ToString(); 
     student.Salt = GenerateSalt(); 
     byte[] passwordHash = Hash(student.Password, student.Salt); 
     student.Password = Convert.ToBase64String(passwordHash); 
     student.TimeAdded = DateTime.Now; 
     students.Add(student); 
    } 
+0

これは 'byte []'に格納できます。実際の質問は何ですか? –

+0

あなたの生徒のオブジェクトに新しいフィールドソルトを作成します.altalt()を生成するときに、フィールドにソルトを入れますか? – Prescott

+0

私はまだabitが失われました –

答えて

1

これは、必要な行に沿っている必要があります。これらの生徒がどこに保存されているのかはわかりませんが、変更する必要があります。

[DataMember(Name = "StudentID")] 
public string StudentID { get; set; } 
[DataMember(Name = "FirstName")] 
public string FirstName { get; set; } 
[DataMember(Name = "LastName")] 
public string LastName { get; set; } 
[DataMember(Name = "Password")] 
public string Password; 
[DataMember(Name = "Salt")] 
public byte[] Salt; 

protected RNGCryptoServiceProvider random = new RNGCryptoServiceProvider(); 

public byte[] GenerateSalt() 
{ 
    byte[] salt = new byte[10]; 
    random.GetNonZeroBytes(salt); 
    return salt; 
} 

public static byte[] Hash(string value, byte[] salt) 
{ 
    return Hash(Encoding.UTF8.GetBytes(value), salt); 
} 

public static byte[] Hash(byte[] value, byte[] salt) 
{ 
    byte[] saltedValue = value.Concat(salt).ToArray(); 

    return new SHA256Managed().ComputeHash(saltedValue); 
} 

public void AddStudent(Student student) 
{ 
    byte[] salt = GenerateSalt(); 

    student.StudentID = (++eCount).ToString(); 
    byte[] passwordHash = Hash(student.Password, salt); 
    student.Salt = salt; 
    student.Password = Convert.ToBase64String(passwordHash); 
    student.TimeAdded = DateTime.Now; 
    students.Add(student); 
} 
+0

ありがとうございますLordcheeto(btw cheetosはすばらしいです)私は可能な答えで私の質問を更新しましたそれは正しい見ていますか? –

+0

datamemberが既にbyte []の場合、あなたは 'byte [] salt = GenerateSalt();'が必要だと思いませんか? –

+0

@KirstyWhite私が言うことができる限り、それは正しく見えます。ええ、私はちょうどそれに多くの考えを入れていませんでした。 – lordcheeto

関連する問題