PDA

View Full Version : پروژه پیاده سازی md5 در c#



afsonlab
یک شنبه 11 تیر 1391, 21:27 عصر
با سلام و خسته نباشید. من میخوام پروژه ای بنویسم که یه ورودی بگیره و هش شده اونو نمایش بده. خیلی سادس ولی هر کاری میکنم نمیشه لطفا راهنماییم کنیید ممنوون :ناراحت:

tooraj_azizi_1035
یک شنبه 11 تیر 1391, 21:59 عصر
سلام
MD5 در دات نت تعبیه شده می خواهید از دوباره خودتون بنویسید؟



using System;
using System.Security.Cryptography;
using System.Text;
namespace MD5Sample
{
class Program
{
static void Main(string[] args)
{
string source = "Hello World!";
using (MD5 md5Hash = MD5.Create())
{
string hash = GetMd5Hash(md5Hash, source);
Console.WriteLine("The MD5 hash of " + source + " is: " + hash + ".");
Console.WriteLine("Verifying the hash...");
if (VerifyMd5Hash(md5Hash, source, hash))
{
Console.WriteLine("The hashes are the same.");
}
else
{
Console.WriteLine("The hashes are not same.");
}
}

}
static string GetMd5Hash(MD5 md5Hash, string input)
{
// Convert the input string to a byte array and compute the hash.
byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input)) ;
// 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(MD5 md5Hash, string input, string hash)
{
// Hash the input.
string hashOfInput = GetMd5Hash(md5Hash, input);
// Create a StringComparer an compare the hashes.
StringComparer comparer = StringComparer.OrdinalIgnoreCase;
if (0 == comparer.Compare(hashOfInput, hash))
{
return true;
}
else
{
return false;
}
}
}
}
// This code example produces the following output:
//
// The MD5 hash of Hello World! is: ed076287532e86365e841e92bfc50d8c.
// Verifying the hash...
// The hashes are the same.

afsonlab
یک شنبه 11 تیر 1391, 22:26 عصر
ببخشید تو ایجاد فرم ها میشه کمکم کنید و اینکه تو sql چه جدول و چه database باید ایجاد کنم

veniz2008
یک شنبه 11 تیر 1391, 22:36 عصر
سلام، ابتدا باید using زیر رو اضافه کنید:

using System.Security.Cryptography;
حالا برای رمز کردن از کد زیر استفاده کنید:

private void btnHash_Click(object sender, EventArgs e)
{
if (txtInput.Text != "")
{
using (MD5 Hash = MD5.Create())
{
txtHash.Text = Hashing.GetMd5Hash(Hash, txtInput.Text);
}
}
}
برای چک کردن رشته رمز شده هم(هنگام اعتبارسنجی) از کد زیر استفاده کنید:

private void btnCheck_Click(object sender, EventArgs e)
{
using (MD5 Hash = MD5.Create())
{
if (Hashing.VerifyMd5Hash(Hash, txtVerify.Text, txtHash.Text))
{

label1.Text = "Is Same :)";
}
else
{

label1.Text = "Is not Same :(";
}
}
}
موفق باشید.

afsonlab
یک شنبه 11 تیر 1391, 22:47 عصر
ممنونم ولی لطفا جدول ایجاد شده تو sql باید چه فیلدهایی داشته باشه؟ هر چی مینویسم نمیشه.من یه فرم ایجاد کردم که دوتا textbox با یه button داره که اولی pass رو میگیره و به وسیله button هش شدش تو دومی نمایش داده میشه ولی نمیشه نمیدونم چرا
لطفا کمکم کنید تا چند روز دیگه باید تحویلش بدم

Farshid007
دوشنبه 12 تیر 1391, 09:54 صبح
md5 خوب نیست چون قابل برگشت نیست و اگه می خواهی یه چیزی و چک کنی باید دوباره اونو به md5 تبدیل کنی
اما فکر کن می خواهی یه چیزی که به md5 تبدیل شده رو دوباره بخونی !نمیشه که
پس از روش AES استفاده کنید

veniz2008
دوشنبه 12 تیر 1391, 10:00 صبح
به این صفحه برید، تو پست 4 یه برنامه کوچیک توسط دوست خوبم uniqueboy_ara (http://barnamenevis.org/member.php?142181-uniqueboy_ara) واسه دانلود گذاشته،خیلی ساده و مختصر MD5 رو پیاده سازی کردن.
موفق باشید.
http://barnamenevis.org/showthread.php?347414-%D9%84%D9%88-%D8%B1%D9%81%D8%AA%D9%86-%DB%8C%D9%88%D8%B2%D8%B1-%D9%88-%D9%BE%D8%B3%D9%88%D8%B1%D8%AF-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87&p=1532265#post1532265

veniz2008
دوشنبه 12 تیر 1391, 10:05 صبح
md5 خوب نیست چون قابل برگشت نیست و اگه می خواهی یه چیزی و چک کنی باید دوباره اونو به md5 تبدیل کنی
اما فکر کن می خواهی یه چیزی که به md5 تبدیل شده رو دوباره بخونی !نمیشه که
پس از روش AES استفاده کنید
دوست عزیز فکر کنم اشتباه میکنید!،این کار براحتی قابل انجام هست،من تو پست بالایی یه لینک گذاشتم میتونید یه نگاه بهش بندازید،
موفق باشید.

Beginner2013
دوشنبه 12 تیر 1391, 13:37 عصر
دوست عزیز فکر کنم اشتباه میکنید!،این کار براحتی قابل انجام هست،من تو پست بالایی یه لینک گذاشتم میتونید یه نگاه بهش بندازید،
موفق باشید.
MD5 Hash یک طرفه هست و قابل برگشت نیست،Hash کردن و Encrypt باهم فرق دارند.

FastCode
دوشنبه 12 تیر 1391, 20:50 عصر
md5 خوب نیست چون قابل برگشت نیست و اگه می خواهی یه چیزی و چک کنی باید دوباره اونو به md5 تبدیل کنی
اما فکر کن می خواهی یه چیزی که به md5 تبدیل شده رو دوباره بخونی !نمیشه که
پس از روش AES استفاده کنید
ربطی نداشت

Farshid007
دوشنبه 12 تیر 1391, 21:00 عصر
نه بابا!!!!!!!!!!!
دروغ میگی!!!!!!!!!!!

afsonlab
سه شنبه 13 تیر 1391, 15:50 عصر
به این صفحه برید، تو پست 4 یه برنامه کوچیک توسط دوست خوبم uniqueboy_ara (http://barnamenevis.org/member.php?142181-uniqueboy_ara) واسه دانلود گذاشته،خیلی ساده و مختصر MD5 رو پیاده سازی کردن.
موفق باشید.
http://barnamenevis.org/showthread.php?347414-%D9%84%D9%88-%D8%B1%D9%81%D8%AA%D9%86-%DB%8C%D9%88%D8%B2%D8%B1-%D9%88-%D9%BE%D8%B3%D9%88%D8%B1%D8%AF-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87&p=1532265#post1532265


سلام خسته نباشید.من 2010 رو نصب کردم ولی وقتی میخوام برنامه رو کامل باش اجرا کنم این پیغامو میده.همون برنامه hashstring رو میگم.
one or more projects in the solution were not loaded correctly باید چکار کنم که باز بشه :گریه: هر پروژه ای هم که بنویسم بخوام اجرا کنم خطای فال exe میده لطفا کمکم کنید