PDA

View Full Version : سوال: آیا MD5 چند نوع کدینگ داره؟



mojtaba-saleh
جمعه 10 آبان 1387, 17:47 عصر
سلام
من برای یک برنامه لازم دارم از دیتابیس نرم افزار فروم ساز Vbulletin (همین که الان برنامه نویس هم داره ) مقادیری رو بخونم
من برای اینکه کاربران بتونن به برنامه دسترسی داشته باشن یوزر و پسوردشون رو وارد کنن و من توی دیتابیس اون ها رو مطابقت بدم و اگه درست بود اجازه ی دسترسی بدم.
حالا مشکل اینه که نوع کدینگ پسورد توی این نرم افزار MD5 هست ولی با نحوه ی کدینگ Md5 ویژوال ساتودیو فرق داره
من یک فایل جاوا اسکریپت هم دارم که کدینگ MD5 رو برام درست میکنه , با اون که امتحان میکنم درسته ولی همون مقدار رو که با MD5 ویژوال استودیو هش می کنم , یه مقدار دیگه ای رو بهم میده :عصبانی++:
فایل جاوا اسکریپت رو هم اتک کردم

آیا ما چند نوع هش MD5 داریم؟

mojtaba-saleh
شنبه 11 آبان 1387, 18:44 عصر
کسی اطلاعی نداره؟

raravaice
شنبه 11 آبان 1387, 23:47 عصر
مطمئن هستی جایی رو خراب نکردی؟!
من دقیقا از همین کد با به همراه دات نت استفاده کردم 100% جواب میده.

MD5 توی هر زبانی کاملا استاندارد هست !

موفق باشید

mojtaba-saleh
یک شنبه 12 آبان 1387, 13:12 عصر
من برای هش کردن از این تابع استفاده می کنم


Imports System.Text
Imports System.Security.Cryptography
Imports System.IO



Enum HashMethod
MD5
SHA1
SHA384
End Enum
Function GenerateHashDigest(ByVal source As String, ByVal algorithm As HashMethod) As String
Dim hashAlgorithm As HashAlgorithm = Nothing
Select Case algorithm
Case HashMethod.MD5
hashAlgorithm = New MD5CryptoServiceProvider
Case HashMethod.SHA1
hashAlgorithm = New SHA1CryptoServiceProvider
Case HashMethod.SHA384
hashAlgorithm = New SHA384Managed
Case Else
' Error case.
End Select
Dim byteValue() As Byte = Encoding.UTF8.GetBytes(source)
Dim hashValue() As Byte = hashAlgorithm.ComputeHash(byteValue)
Return Convert.ToBase64String(hashValue)
End Function

و مقدار هش رو با حالت زیر بدست ویارم


GenerateHashDigest("String", HashMethod.MD5)

آیا جایی اشتباه کردم؟

Ali1400
سه شنبه 14 آبان 1387, 02:22 صبح
سلام
من PHP بلد نیستم ولی شاید مورد زیر باشد
دات نت خروجی هشی که می دهد با حروف بزرگ است ، ولی معمول استانداردتر آن با حروف کوچک است.
شاید Vbulletin آن را به حروف کوچک هش می کند. که می توانی هش یک ورودی مشخص را با Vbulletin و #c انجام دهی و مقایسه کنی ، اگر این قضیه صادق بود آنوقت در #c بعد از هش کردن ، هش بدست آمده را به حروف کوچک تبدیل کن و بعد با دیتابیس مقایسه کن

mojtaba-saleh
چهارشنبه 15 آبان 1387, 19:04 عصر
نه عزیز , توی هش باvs یک سری == و کارکتر هم وجود داره که در اون حالت نیست

Ali1400
شنبه 18 آبان 1387, 02:58 صبح
مگر نه اینکه هش MD5 یک استاندارد است و در همه زبانها همسان است (به جز کوچک بودن یا بزرگ بودن کاراکترهای حروف و ثابت بودن سایر کاراکترها مثل اعداد)؟
ببین من استرینگ 123 را توسط سایتهای زیر به هش تبدیل کردم (گزینه یک تا سه) و همچنین در گزینه چهار ، استرینگ 123 را خودم با #c تبدیل کردم همانطور که می بینی همه یکسان هستند ، فقط در دات نت (گزینه چهار) حروف را به صورت بزرگ نمایش داده است.
پس اگر vBulletin هم به حروف کوچک تبدیل کند و شما هم می خواهید هشی را که دات نت تبدیل کرده با هش تبدیل شده با vBulletin مقایسه کنید که برابر است یا نه خوب جواب منفی می گیرید چون دات نت حروف را بزرگ نمایش می دهد وvBulletin حروف را کوچک ، پس قبل از مقایسه هشی را که دات نت ساخته را به حروف کوچک تبدیل کن(
ToLower).

1.
http://www.adamek.biz/md5-generator.php
String: 123
MD5 Hash: 202cb962ac59075b964b07152d234b70
2.
http://www.dotcomunderground.com/web-tools/md5-encryption
String: 123
MD5 Hash: 202cb962ac59075b964b07152d234b70
3.
http://www.md5encrypter.com
String: 123
Md5 Hash: 202cb962ac59075b964b07152d234b70
4.
توسط خودم در #c
String: 123
Md5 Hash: 202CB962AC59075B964B07152D234B70