سلام بفرما این کدی که خودم استفاده کردم هیچ خطایی هم نداره...
این hash کردن توسط الگوریتم MD5 الکوریتم رمز نگاری غیر بازگشتی بهترین روش برای ذخیره رمز هستش...
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security .Cryptography ;
namespace coding
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string source = "samad";
string hash = getMd5Hash(source);
textBox1 .Text = hash;
if (verifyMd5Hash(source, hash))
{
MessageBox.Show ("The hashes are the same.");
}
else
{
MessageBox .Show ("The hashes are not same.");
}
}
static string getMd5Hash(string input)
{
// Create a new instance of the MD5CryptoServiceProvider object.
MD5 md5Hasher = MD5.Create();
// Convert the input string to a byte array and compute the hash.
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(in put));
// Create a new Stringbuilder to collect the bytes
// and create a string.
StringBuilder sBuilder = new StringBuilder();
// Loop through each byte of the hashed data
// and format each one as a hexadecimal string.
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
// Return the hexadecimal string.
return sBuilder.ToString();
}
// Verify a hash against a string.
static bool verifyMd5Hash(string input, string hash)
{
// Hash the input.
string hashOfInput = getMd5Hash(input);
// Create a StringComparer an compare the hashes.
StringComparer comparer = StringComparer.OrdinalIgnoreCase;
if (0 == comparer.Compare(hashOfInput, hash))
{
return true;
}
else
{
return false;
}
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox2.Text == textBox1.Text)
{
MessageBox.Show("y");
}
else
{
MessageBox.Show("n");
}
}
}
}