PDA

View Full Version : سوال: تبدیل متن به هش



alirezabigdeli
چهارشنبه 15 آبان 1392, 00:38 صبح
سلام دوستان
چطوری میتونم یه برنامه بنویسم که متن رو به هش های مختلف از جمله:

MD2
MD4
MD5
SHA-1
SHA-2 (256)
SHA-2 (384)
SHA-2 (512)
RIPEMD-160
LM
NT
MySQL323
MySQLSHA1
Cisco PIX
VNC Hash
Base64
و
.
.
.

تبدیل کنه؟

باتشکر

بهروز عباسی
چهارشنبه 15 آبان 1392, 01:39 صبح
در ساده ترین حالت از کلاسها/کتابخانه های موجود استفاده می کنی
این لینک رو ببین
System.Security.Cryptography Namespace (http://msdn.microsoft.com/en-us/library/System.Security.Cryptography%28v=vs.110%29.aspx)


مثال :
The following code example computes the MD5 hash value of a string and returns the hash as a 32-character, hexadecimal-formatted string. The hash string created by this code example is compatible with any MD5 hash function (on any platform) that creates a 32-character, hexadecimal-formatted hash string.

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.

در حالت سخت تر خودتون تمام الگوریتم های فوق رو مطالعه و پیاده سازی می کنید.:چشمک:

شب خوش.

alirezabigdeli
چهارشنبه 15 آبان 1392, 21:34 عصر
دوست عزیز خیلی خیلی متشکرم از راهنماییتون(عالی بود :چشمک:)

برای تبدیل متن به هش mysql از از چه کلاسها/کتابخانه هایی استفاده کنم؟

forodo
یک شنبه 19 آبان 1392, 22:00 عصر
کار تابع VerifyMD5Hash چیه؟