الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

hashing function

بدأه ضحى حسان في 12 فبراير 2011 · 17 رد · 1,119 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا عندي استفسار عن hashing function

هلا انا قرات عنه ولماذا يستخدم

بس مش قادره اعرف كيف يستخدم

اين يضع الكود ليخزن باسورد مشفره بالداتا بيز واليه العمل

انتظر ردودكم

شكرا مقدما

سيصبح كل شئ على ما يرام ذات يوم ....هذا هو املنا

اما ان نقول كل شئ على ما يرام اليوم....فهذا هو الوهم

#2

الـhashing هو نوع من التشفير الأحادي الجهة. أي أنك تستطيع تحويل كلمة السر (على سبيل المثال) إلى كلمة مشفرة أصغر حجماً، وهذه الجملة المشفرة لا يمكن إعادتها إلى شكلها الأصلي. طريقة استخدامها لكلمات السر هو أنك لا تخزن كلمة السر نفسها في قاعدة البيانات بل تخزن نتيجة الـhashing. وعندما تتم عملية تسجيل الدخول، تقوم بتشفير كلمة السر المدخلة باستخدام نفس دالة الـhashing وتقارن النتيجة بتلك المخزنة لديك. عندما تتساوى القيمتان فهذا يعني أن كلمة السر المدخلة مطابقة لكلمة السر المخزنة وتنجح عملية الدخول.

#3

اها شكرا يا باشا للرد السريع

بس كيف بدي اطبقها برمجيا على الدوت نت

سيصبح كل شئ على ما يرام ذات يوم ....هذا هو املنا

اما ان نقول كل شئ على ما يرام اليوم....فهذا هو الوهم

#4

ليكن لديك textbox تكتبين فيه كلمة السر ................

ضعي الكود التالي

string Inc_Pass = FormsAuthentication.HashPasswordForStoringInConfigFile(textbox1.Text, "MD5");

حيث ان النص المشفر هو محتوى textbox1 وخوارزمية التشفير هي MD5

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#5

السلام عليكم ورحمه الله وبركاته

كما ذكر الاخ في السابق ال Hashing هو نوع من ثلاثه انواع لخوارزميات التشفير

Symmetric, Asymmetric, Hashing

يستخدم تشفير فقط وليس له فك تشفير فلهذا يسمى التوقيع الالكتروني Digital Signature فيمكنك من التحقق من كلمات المرور او البصمه وووو

Imports System.Security.Cryptography

Imports System.Text

Dim sha1 As New SHA1CryptoServiceProvider()

Dim password() As Byte = sha1.ComputeHash(Encoding.ASCII.GetBytes("My Password"))

ويمكنك استخدام

SHA256CryptoServiceProvider

SHA384CryptoServiceProvider

MD5CryptoServiceProvider

هناك العديد من الخوارزميات التي تستخدم نفس الاسلوب

تم تعديل هذه المشاركة بواسطة VB Helper في 12 فبراير 2011 في 11:25

.:: Wish to become better and better ::.

#6
Tammam_KD كتب:

ليكن لديك textbox تكتبين فيه كلمة السر ................

ضعي الكود التالي

string Inc_Pass = FormsAuthentication.HashPasswordForStoringInConfigFile(textbox1.Text, "MD5");

حيث ان النص المشفر هو محتوى textbox1 وخوارزمية التشفير هي MD5

ممتاز شكرا كتير معلومه حلوه والحمد لله زبطت :wink:

بس للأسف اللي ما زبط معي هوه تسجيل الدخول

عملت كما قال الاخ VB Helper بس ما زبط معي كود login وارجاع الباسورد

***تحياتي***

سيصبح كل شئ على ما يرام ذات يوم ....هذا هو املنا

اما ان نقول كل شئ على ما يرام اليوم....فهذا هو الوهم

#7

اسمعي شو رح تعملي بكل بساطة رح اشرحلك الكود شرح وانتي اكيد رح تعرفي اتطبقي :

كود تسجيل الدخول

string Inc_Pass = FormsAuthentication.HashPasswordForStoringInConfigFile(textbox1.Text, "MD5");
string LoginQuiry ="select UserID from Users where UserName='"+TextBox_Name+"'  and Password ='"+Inc_Pass+"' ";
// now go and execute the select statment

طبعا النص في قاعدة البيانات يكون مشفر

1

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#8

السلام عليكم ورحمه الله وبركاته

هذا هو كود تسجيل الدخول

Imports System.Security.Cryptography

Imports System.Text

Dim sha1 As New SHA1CryptoServiceProvider()

Dim password() As Byte = sha1.ComputeHash(Encoding.ASCII.GetBytes(txtPassword.Text))

Dim conn As New SqlConnection("Your ConnectionString")

Dim cmd As New SqlCommand("Select Count(*) From Users Where Username=@Username and Password=@Password",conn)

cmd.Parameters.AddWithValue("Username",txtUsername.txt)

cmd.Parameters.AddWithValue("Password",password)

conn.Open()

If cmd.ExecuteScalar()=1 Then

'Success

Else

'Failed

End If

conn.Close()

مع العلم حقل كلمة المرور اجعليه Binary

.:: Wish to become better and better ::.

#9

السلام عليكم....المحاولتين ما زبطوا

بالنسبه لمشاركة الاخ Tammam_KD

عملت شو حكيت بس ما زبط

 Dim sha1 As New SHA1CryptoServiceProvider()
        Dim a() As Byte = sha1.ComputeHash(Encoding.ASCII.GetBytes(TextBox2.Text))

        Dim selectsql As String
        selectsql = "select * from login WHERE username=@username and password=@password"


        Dim con As New SqlConnection(connectionstring)
        Dim cmd As New SqlCommand(selectsql, con)
        cmd.Parameters.AddWithValue("Username", TextBox1.Text)
        cmd.Parameters.AddWithValue("Password", a)
        'cmd.Parameters.Add("@username", SqlDbType.NVarChar, 20)
        'cmd.Parameters("@username").Value = TextBox1.Text
        'cmd.Parameters.Add("@password", SqlDbType.NVarChar, 20)
        'cmd.Parameters("@password").Value = TextBox2.Text


        Dim reader As SqlDataReader
        Try
            con.Open()
            reader = cmd.ExecuteReader()

            reader.Read()

            Session("a") = reader("username").ToString
            If Session("a") = "" Then

            Else

                Session("name:") = Me.TextBox1.Text
                Session("pass") = Me.TextBox2.Text
                Session("ID") = reader("userid").ToString
                Response.Redirect("~\Home.aspx")
            End If


            reader.Close()



        Catch ex As Exception
            Label1.Text = "Username and/or password are incorrect."
        Finally
            con.Close()
        End Try

يعني ما بقبل يدخل على الموقع

وكما قال الاخ VB helper

عملت حقل كلمة المرور binary

بس سجلت يوزر جديد اعطي ايرور

Implicit conversion from data type nvarchar to binary is not allowed. Use the CONVERT function to run this query.

والقيمه التى كانت مخزنه قديما بالداتا بيز

بحقل الباسورد

كتب binary data

سيصبح كل شئ على ما يرام ذات يوم ....هذا هو املنا

اما ان نقول كل شئ على ما يرام اليوم....فهذا هو الوهم

#10

أختي الكريمة انتبهي لأمر صغير ...... لنفرض أن كلمة السر هي tammam عندما تكون مشفرة ستكون مثلا :

hg2gkjh213123hkjh31 هكذا على سبيل المثال وهي تعني tammam مشفرة ......... يجب أن تكون القيمة في قاعدة البيانات مخزنة بشكل مشفر ................. يعني القيمة في قاعدة البيانات هي (hg2gkjh213123hkjh31) ..........

وعند تسجيل الدخول يتم تشفير كلمة المرور لتصبح (hg2gkjh213123hkjh31)

يتم مقارنة القيمتين مع بعضهما فيتطابقان حتما

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#11

ماشي انا معك ...وكلامك صحيح

انا بس دخلت باسورد ورجعت لقاعده البيانات

لقيتها مشفره يعني انا دخلت 123

ولقيتها مشفره

ومشي الحال

هلا بس جيت اسجل الدخول

ماقبل ....

انا بعتذر غلبتكم وعجئتكم

بس ازا ما صار شي

بحط ملف مرفق بالكود ان شاءالله

سيصبح كل شئ على ما يرام ذات يوم ....هذا هو املنا

اما ان نقول كل شئ على ما يرام اليوم....فهذا هو الوهم

#12

السلام عليكم

من الممكن ان تكون العملية كاملة على طرف الكود بلغة البرمجة او على طرف قاعدة البيانات

هذين اجرائين لقاعدة البيانات

هذا الاولى هو للتسجيل حيث سيقوم بتشفير النص ومن ثم بادخاله (ملاحظة المستعرض جنني الا بدو يخلي At انو تصير ميل لهيك استبدلتها ب #)

create  PROCEDURE dbo.rigsteruser
 (
 #username nvarchar(50),
 #password nvarchar(50)
 )
AS
declare #Ciphertext nvarchar(50) 
declare #output int
begin
set #output=(select count(*) from Users where [UserName]=@username)
 set #Ciphertext = HashBytes('MD5', #password) 
 if #output < 1 and #username <> '' and #password <> ''
 begin
 INSERT INTO [Users]
 ([UserName], [PassWord],[CreationDate]) 
 VALUES (#username,#Ciphertext,getutcdate())
 end
end 
RETURN #output

وهذا الاجراء للمقارنة في حال كان متشابه بعد كم يوزر بهالاسم

create PROCEDURE dbo.login 
 (
 #username nvarchar(50),
 #password nvarchar(50)
 )
AS
declare #Ciphertext nvarchar(50)
begin
set #Ciphertext = HashBytes('MD5', #password) 
select count(*) from Users where UserName = #username and PassWord=#Ciphertext
end

In bad state

#13

السلام عليكم ورحمه الله وبركاته

تخت ضحى برنامجي صحيح 100 بال 100 , عليك بحذف جميع المستخدمين لأنه نوع كلمه المرور لابد ان تكون قيمه ثنائيه لهذا طلعت الرساله. ما عليك الا اثناء التسجيل ان تقومي بالاتي

Dim sha1 As New SHA1CryptoServiceProvider()

Dim password() As Byte = sha1.ComputeHash(Encoding.ASCII.GetBytes(txtPassword.Text))

اي تشفير كلمة المرور وتحويلها من نص الى قيمه ثنائيه ومتأكد ستضبط معاك باذن الله

.:: Wish to become better and better ::.

#14
X-File كتب:

السلام عليكم

من الممكن ان تكون العملية كاملة على طرف الكود بلغة البرمجة او على طرف قاعدة البيانات

هذين اجرائين لقاعدة البيانات

هذا الاولى هو للتسجيل حيث سيقوم بتشفير النص ومن ثم بادخاله (ملاحظة المستعرض جنني الا بدو يخلي At انو تصير ميل لهيك استبدلتها ب #)

create  PROCEDURE dbo.rigsteruser
 (
 #username nvarchar(50),
 #password nvarchar(50)
 )
AS
declare #Ciphertext nvarchar(50) 
declare #output int
begin
set #output=(select count(*) from Users where [UserName]=@username)
 set #Ciphertext = HashBytes('MD5', #password) 
 if #output < 1 and #username <> '' and #password <> ''
 begin
 INSERT INTO [Users]
 ([UserName], [PassWord],[CreationDate]) 
 VALUES (#username,#Ciphertext,getutcdate())
 end
end 
RETURN #output

وهذا الاجراء للمقارنة في حال كان متشابه بعد كم يوزر بهالاسم

create PROCEDURE dbo.login 
 (
 #username nvarchar(50),
 #password nvarchar(50)
 )
AS
declare #Ciphertext nvarchar(50)
begin
set #Ciphertext = HashBytes('MD5', #password) 
select count(*) from Users where UserName = #username and PassWord=#Ciphertext
end

السلام عليكم....شكرا الك استازنا هوه انا ما جربت الكود ....بس اكيد صح

بعتذر بس ما قدرت افهم منه شي :)

استازنا vb helper

انا عارفه انوا الكود صح 100من 100 بس انا بالبدايه ما زبط معي

بس هلا الحمد لله زبط بس انا مسحت كل اليوزر

وكانت فاضيه الداتا بيز

هلا بس جيت اسجل مستخدم جديد

ما حط الباسورد مشفره

يعني ارقام وحروف وهيك

ضلت<Binary data>

بس بالنهايه زبط

هاد شي عاادي؟؟؟

وشكرا كتير لانوا غلبناكم :)

سيصبح كل شئ على ما يرام ذات يوم ....هذا هو املنا

اما ان نقول كل شئ على ما يرام اليوم....فهذا هو الوهم

#15

أهلا بك أختي ضحى ...............

1

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#16

السلام عليكم ورحمه الله وبركاته

اخت ضحى ايش الي مش مفهوم بالضبط اذا في شي سوف اقوم بشرحه

.:: Wish to become better and better ::.

#17

الله يجزيك الخير...انا كنت بحكي عن مشاركة الاستاز x_file

سيصبح كل شئ على ما يرام ذات يوم ....هذا هو املنا

اما ان نقول كل شئ على ما يرام اليوم....فهذا هو الوهم

#18

السلام عليكم ورحمه الله وبركاته

بالتوفيق للجميع

.:: Wish to become better and better ::.

مواضيع مشابهة