امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
md5 encoder
نویسنده پیام
HamedFaa آفلاین
كاربر دو ستاره
**

ارسال‌ها: 117
موضوع‌ها: 16
تاریخ عضویت: اسفند ۱۳۸۹

تشکرها : 15
( 61 تشکر در 47 ارسال )
ارسال: #1
md5 encoder
سلام. میخوام یه برنامه بنویسم که استرینگ رو تبدیل به هش کنه (md5)

یه کلاس برای اینکار از یه سایت گیر آوردم ولی چیزی از سورسش متوجه نشدم. اگه کسی در این رابطه الگوریتمی داره لطفا توضیح بده میخوام خودم بنویسمش.

دانلود کلاس تبدیل استرینگ به هش با پروژه

۲۹-خرداد-۱۳۹۰, ۰۶:۱۹:۰۵
وب سایت ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #2
RE: md5 encoder
سلام.
الگوریتم RC4DigestToHex کمی مشکل داره. ببین میتونی مشکلشو حل کنی.

کد:
Option Explicit

Private Const ALG_CLASS_HASH As Long = (4 * 2 ^ 13)
Private Const ALG_CLASS_DATA_ENCRYPT = (3 < 13)
Private Const ALG_TYPE_STREAM = (4 < 9)

Private Const ALG_SID_RC4 = 1
Private Const ALG_SID_MD5 = 3
Private Const ALG_SID_SHA1 = 4


Private Const ALG_TYPE_ANY As Long = 0
Private Const CALG_MD5 As Long = (ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_MD5)
'Private Const CALG_SHA1 = "0x00008004"
Private Const CALG_SHA1 = ((ALG_CLASS_HASH Or ALG_TYPE_ANY) Or ALG_SID_SHA1)
Private Const CALG_RC4 = ((ALG_CLASS_DATA_ENCRYPT Or ALG_TYPE_STREAM) Or ALG_SID_RC4)

Private Const CRYPT_VERIFYCONTEXT As Long = &HF0000000
Private Const PROV_RSA_FULL As Long = 1

Private Const HP_HASHSIZE As Long = &H4
Private Const HP_HASHVAL As Long = &H2

Private Declare Function CryptGetHashParam Lib "advapi32.dll" (ByVal hHash As Long, ByVal dwParam As Long, pByte As Any, ByRef pdwDataLen As Long, ByVal dwFlags As Long) As Long
Private Declare Function CryptAcquireContext Lib "advapi32.dll" Alias "CryptAcquireContextA" (ByRef phProv As Long, ByVal pszContainer As String, ByVal pszProvider As String, ByVal dwProvType As Long, ByVal dwFlags As Long) As Long
Private Declare Function CryptCreateHash Lib "advapi32.dll" (ByVal hProv As Long, ByRef Algid As Long, ByRef hKey As Long, ByVal dwFlags As Long, ByRef phHash As Long) As Long
Private Declare Function CryptDestroyHash Lib "advapi32.dll" (ByRef hHash As Long) As Long
Private Declare Function CryptHashData Lib "advapi32.dll" (ByRef hHash As Long, ByVal pbData As String, ByVal dwDataLen As Long, ByVal dwFlags As Long) As Long
Private Declare Function CryptReleaseContext Lib "advapi32.dll" (ByRef hProv As Long, ByRef dwFlags As Long) As Long

Public Function RC4DigestToHex(ByVal s As String) As String
    Dim hContext As Long
    Dim hHash As Long
    Dim dwDataLen As Long
    Dim b() As Byte

    CryptAcquireContext hContext, vbNullChar, vbNullChar, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT
    CryptCreateHash hContext, ByVal CALG_RC4, ByVal 0&, 0&, hHash
    
    CryptHashData ByVal hHash, s, Len(s), 0
    
    CryptGetHashParam hHash, HP_HASHSIZE, dwDataLen, 4, 0
    ReDim b(dwDataLen - 1)
    CryptGetHashParam hHash, HP_HASHVAL, b(0), dwDataLen, 0
    
    Dim str As String, i As Long
    For i = 0 To UBound(b)
        str = str & HexChar(b(i))
    Next i
    RC4DigestToHex = LCase$(str)
    
    CryptDestroyHash hHash
    CryptReleaseContext hContext, ByVal 0&
End Function

Public Function MD5DigestToHex(ByVal s As String) As String
    Dim hContext As Long
    Dim hHash As Long
    Dim dwDataLen As Long
    Dim b() As Byte

    CryptAcquireContext hContext, vbNullChar, vbNullChar, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT
    CryptCreateHash hContext, ByVal CALG_MD5, ByVal 0&, 0&, hHash
    
    CryptHashData ByVal hHash, s, Len(s), 0
    
    CryptGetHashParam hHash, HP_HASHSIZE, dwDataLen, 4, 0
    ReDim b(dwDataLen - 1)
    CryptGetHashParam hHash, HP_HASHVAL, b(0), dwDataLen, 0
    
    Dim str As String, i As Long
    For i = 0 To UBound(b)
        str = str & HexChar(b(i))
    Next i
    MD5DigestToHex = LCase$(str)
    
    CryptDestroyHash hHash
    CryptReleaseContext hContext, ByVal 0&
End Function

Public Function SHA1DigestToHex(ByVal s As String) As String
    Dim hContext As Long
    Dim hHash As Long
    Dim dwDataLen As Long
    Dim b() As Byte

    CryptAcquireContext hContext, vbNullChar, vbNullChar, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT
    CryptCreateHash hContext, ByVal CALG_SHA1, ByVal 0&, 0&, hHash
    
    CryptHashData ByVal hHash, s, Len(s), 0
    
    CryptGetHashParam hHash, HP_HASHSIZE, dwDataLen, 4, 0
    ReDim b(dwDataLen - 1)
    CryptGetHashParam hHash, HP_HASHVAL, b(0), dwDataLen, 0
    
    Dim str As String, i As Long
    For i = 0 To UBound(b)
        str = str & HexChar(b(i))
    Next i
    SHA1DigestToHex = LCase$(str)
    
    CryptDestroyHash hHash
    CryptReleaseContext hContext, ByVal 0&
End Function

Private Function HexChar(ByVal b As Byte) As String
    Dim s As String
    s = Hex(b)
    If Len(s) = 1 Then s = "0" & s
    HexChar = s
End Function
[b]
۳۰-خرداد-۱۳۹۰, ۱۶:۵۶:۴۸
ارسال‌ها
پاسخ
تشکر شده توسط : hadikh73
HamedFaa آفلاین
كاربر دو ستاره
**

ارسال‌ها: 117
موضوع‌ها: 16
تاریخ عضویت: اسفند ۱۳۸۹

تشکرها : 15
( 61 تشکر در 47 ارسال )
ارسال: #3
RE: md5 encoder
نه داداش من نمیدونم چی به چیه. یکی الگوریتم اینو توضیح بده بعد مشکلی داشته باشه خودم حل میکنم.
مرسی
۳۰-خرداد-۱۳۹۰, ۱۷:۱۵:۲۹
وب سایت ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #4
RE: md5 encoder
سلام.
md5 و sh1 که اصلی ترین الگوریتم های هش هستن درست کار میکنن. شما RC4 رو حذف کن.
۳۰-خرداد-۱۳۹۰, ۲۱:۲۲:۱۰
ارسال‌ها
پاسخ
تشکر شده توسط : hadikh73
javaweb آفلاین
در حال پیشرفت
***

ارسال‌ها: 310
موضوع‌ها: 113
تاریخ عضویت: تير ۱۳۹۱

تشکرها : 497
( 325 تشکر در 144 ارسال )
ارسال: #5
RE: md5 encoder
با سلامHeart
در اون کلاس بالا با کد زیر تبدیل می کنیم
کد:
md5Test.DigestStrToHexStr(Text1.Text)
حالا چطوری به حالت اول برش گردونمWhistle
رشته ای را که با کد بالا تبدیل کردم نمی شه دوباره به حالت اول برش گردوند؟
با تشکــــــــــــــــــــــــــــــHappyـــــــــــــــــــــــــــــــــــــــر

الهم عجل لولیک الفرج

[تصویر:  logo.png]
www.shGraphy.ir
insta: @shGraphy_ir
۱۹-خرداد-۱۳۹۲, ۱۱:۰۵:۰۹
وب سایت ارسال‌ها
پاسخ
babyy آفلاین
بازنشسته
*****

ارسال‌ها: 3,095
موضوع‌ها: 141
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 35081
( 26090 تشکر در 9068 ارسال )
ارسال: #6
RE: md5 encoder
توابع هش یک طرفه هستند
از خروجی نمیشه به ورودی رسید
۱۹-خرداد-۱۳۹۲, ۱۱:۳۰:۲۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : javaweb, Ghoghnus, behzady, hadikh73
megatron آفلاین
عضو افتخاری
****

ارسال‌ها: 228
موضوع‌ها: 48
تاریخ عضویت: فروردین ۱۳۸۷

تشکرها : 94
( 171 تشکر در 91 ارسال )
ارسال: #7
RE: md5 encoder
سلام.
من این برنامشو نشوته بودم.

الگوریتمو بگیر بزار تو برنامه بعد از تکست بخون تو یه تسکت دیگه خروجی نشون بده

بیا اینم برنامش که نوشته بودم.
سروسشو شرمنده ندارم....

-------------------------------------------------

لینک حذف شد.
لطفا سورس قرار بدهید.
Payman62
(آخرین ویرایش در این ارسال: ۲۵-خرداد-۱۳۹۲, ۱۷:۰۶:۴۶، توسط Payman62.)
۲۴-خرداد-۱۳۹۲, ۰۰:۴۲:۵۹
ارسال‌ها
پاسخ
javaweb آفلاین
در حال پیشرفت
***

ارسال‌ها: 310
موضوع‌ها: 113
تاریخ عضویت: تير ۱۳۹۱

تشکرها : 497
( 325 تشکر در 144 ارسال )
ارسال: #8
RE: md5 encoder
با سلام و تشکرHeartHeartHeart
من خودم یه برنامه پیدا کردم ولی باایستی تمامی کارکتر ها را یکی یکی چک می کرد تا به جواب برسه که خیلی خیلــــــــــــــــــــــــــــــــی طول می کشید اونجوری شما می گید نبود

الهم عجل لولیک الفرج

[تصویر:  logo.png]
www.shGraphy.ir
insta: @shGraphy_ir
۲۶-خرداد-۱۳۹۲, ۱۰:۰۶:۲۶
وب سایت ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #9
RE: md5 encoder
سلام.
دوست عزیز هش یه طرفه هست. شما 5000 کاراکتر هم بدی مثلا تبدیل به 32 کاراکتر میشه و هیچ راهی برای بازگشت به رشته اولیه وجود نداره. چون یه سری اطلاعات از دسته رفته.

اونی که شما میخوای encrypt و decrypt هست. از الگوریتم هایی مثل RSA, RC4 و AES میتونی استفاده کنی.
۲۸-خرداد-۱۳۹۲, ۱۲:۰۲:۳۴
ارسال‌ها
پاسخ
تشکر شده توسط : javaweb, babyy, hadikh73
javaweb آفلاین
در حال پیشرفت
***

ارسال‌ها: 310
موضوع‌ها: 113
تاریخ عضویت: تير ۱۳۹۱

تشکرها : 497
( 325 تشکر در 144 ارسال )
ارسال: #10
RE: md5 encoder
با سلام و تشکر
این سورس برنامه که آپ کردم می تونه این کارو بکنه ولی خیلی،خیلی طول می کشه
میاد دونه دونه مقایسه انجام می دهWhistle


فایل‌(های) پیوست شده
.rar   md5hash.rar (اندازه: 884.3 KB / تعداد دفعات دریافت: 48)

الهم عجل لولیک الفرج

[تصویر:  logo.png]
www.shGraphy.ir
insta: @shGraphy_ir
۲۸-خرداد-۱۳۹۲, ۱۲:۲۸:۴۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #11
RE: md5 encoder
سلام.
اگه همین طور هش رشته های مختلف رو چک میکنه که این رمز گشایی نیست. این یه جورایی کرکه. خیلی ساده خودتونم میتونید این برنامه رو بنویسید.
اما زمان به جواب رسیدن تصاعدی میره بالا. اگه طول کاراکترها زیاد باشه زمانش خیلییییی طولانی میشه.
۲۸-خرداد-۱۳۹۲, ۱۴:۲۳:۴۳
ارسال‌ها
پاسخ
تشکر شده توسط : hadikh73, babyy, javaweb


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS