تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] SQL 2019
#1
ممكن  كود لتغير  الارقام  السرية للمستخدمين في DATABASE  SQL 2019
بشكل نجوم  ****    
والعكس


مثل الصورة المرفقة


الملفات المرفقة صورة/صور
   
الرد }}
تم الشكر بواسطة: خالد20 , خالد20
#2
راجع هذا الرابط
https://www.mssqltips.com/sqlservertip/4...-database/



او بامكانك قبل حفظ الرقم السري في قاعدة البيانات ان تجري عليه بعض التعديلات بأن تضيف اوله رقم يتكون مثلا من خانتين وفي اخره رقم ثم تجمع الرقم الناتج مع رقم معين وتضربه برقم معين 
ثم تقوم بحفظ الناتج الكلي في قاعدة البيانات  فعلى افتراض ان الرقم السري 12345 نضيف اوله مثلا 24 واخره 25 فيصبح الرقم 2412344525 ثم نجع الناتج مع الرقم 2000 مثلا فيصبح الرقم كالتالي 241236525 ثم نضرب مثلا ب 17 فيصبح الرقم السري الذي يجزن في قاعدة البيانات هو 4101020925
وعند استدعائه يجب ارجاعه الى الرقم الاصلي بعملية عكسية
سورس كود برنامج محاسبة ومبيعات احترافي ومتكامل- قم بالاطلاع على البرنامج 

واتساب 00963951283515
الرد }}
تم الشكر بواسطة: خالد20
#3
يمكن تشفير الرمز قبل الحفظ ومن ثم فك التشفير عند الاستدعاء
الرد }}
تم الشكر بواسطة: خالد20
#4
(25-01-22, 08:30 PM)عدنان الشمري كتب : يمكن تشفير الرمز قبل الحفظ ومن ثم فك التشفير عند الاستدعاء

ممكن اكواد التشفير 
وفك التشفير
الرد }}
تم الشكر بواسطة: خالد20 , خالد20
#5
السلام عليكم ورحمة الله وبركاته
اخي الكريم محمد
بالنسبة لحفظ كلمات السر في قاعدة البيانات على شكل نجمة لا أظن يمكن ذلك او لنقل ليس عندي علم لطريقة ما !!
 لأن التخزين هو عبارة عن نص وإن قمت بالتخزين على شكل نجمة او نقط فأن النص المخزن لا يعني شيئا سوى نجوم او نقط
ولا يمكن تحويلهم كما نفعل مع مريع النص
لدي فكرة وسأورد لك مثال عليها 
بما انك يمكنك قفل قاعدة البيانات بكلمة سر حيث لا يمكن لاحد الدخول اليها فلا ضير ان كتبت كلمات السر في الجدول على حالها  
لكن يمكننا تحويل كلمات السر هذه عند جلبها الى الداتاغرايد بأن نجعلها بشكل نجوم  ولا يمكن رؤيتها وبخاصة ان منعنا التحرير في الداتاغرايد 
أي Enable Editing=false
في المثال التالي  نفذت لك الكلام أعلاه وزدت عليه عند اختيار أي سجل سيتم عرضه في مربعي النص
 واجد للاسم والثاني للباسورد يمكنك عرض كلمة السر او اخفاؤها عبر الشك بوكس 
ربما تروق لك الفكرة هذه


الملفات المرفقة
.zip   PasswordChar.zip (الحجم : 138.36 ك ب / التحميلات : 1)
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}
#6
بما انك تستخدم SQL DATABASE 2019

استخدم الطريقة :
HashAlgorithm.ComputeHash


أولاً تقوم بتحويل النص العادي (والتي هي كلمة المرور) : تحويلها من نص ( String ) إلى مصفوفة بايتات ( ()Byte )
كود :
Dim PasswordData As Byte() = System.Text.Encoding.UTF8.GetBytes(Me.PasswordTextBox.Text)



ثانياُ : تنشاء متغير باسم ( SHA512 ) من نوع ( System.Security.Cryptography.SHA512Managed )  
وذلك لإستخدام خوارزمية HashAlgorithm ( لتشفير البيانات في إتجاه واحد فقط غير قابل لفك التشفير )
كود :
Dim SHA512 As New System.Security.Cryptography.SHA512Managed


ثالثاً : نستخدم المتغير SHA512 لتشفير البيانات الموجودة في المصفوفة ( PasswordData ) وحفظها في متغير جديد باسم ( PasswordHash )
كود :
Dim PasswordHash As Byte() = SHA512.ComputeHash(PasswordData)



إذا كان صندوق النص ( Me.PasswordTextBox.Text ) يحمل القيمة ( vb4arb.com )
أي ان كلمة المرور = vb4arb.com
بعد عملية التشفير بواسطة الطريقة ComputeHash
النتيجة ستكون كالتالي : وذلك بعد التشفير
لاحظ ان النص الموجود بالأسفل يعبر عن شكل البيانات الموجودة في المصفوفة المشفرة
ولكن المصفوفة المشفرة أساساً ليسة بهذا الشكل ( قمت بتحويلها إلى نص وذلك حتى تتمكن من أخذ فكرة عن شكل الناتج )
كود :
45b6deacb27a617b889f1396da586270a131082c5ad83a9cd916aa72b07c296a43f33290aa9548f9d1b7fbbf169092ca8a25251ea461e688985451d5f8d77d39


******************************************************************************
الطريقة المستخدمة لعرض شكل المصفوفة بشكل نصي :  ( هذا النص البرمجي فقط لشرح شكل المصفوفة وغير مطلوب ,, تم إستخدامة فقط لعرض القيمة الموجودة بالأعلى)
كود :
Dim txt As String = BitConverter.ToString(PasswordHash).Replace("-", "")

******************************************************************************





الآن قم بحفظ قيمة المتغير ( PasswordHash ) والذي يحمل مصفوفة البيانات بعد التشفير
قم بحفظ القيمة في حقل قاعدة البيانات الخاص بكلمة المرور
ويكون نوع الحقل في قاعدة البيانات من نوع ( varbinary ) حصراً

الآن انت تمتلك كلمة مرور محفوظة في قاعدة البيانات ومشفرة ولا يمكن أبداً فك تشفيرها ( لأنها مشفرة بطريقة تشفير بإتجاه واحد ) 
إتجاه واحد يعني تشفير فقط ولا يمكن فك التشفير
بإتجاهين يعني تشفير ويمكن فك التشفير بالعكس


ماذا يمكنك الآن ان تفعل بهذا الحقل ؟؟؟؟
فقط يمكنك إستخدامة للمقارنة فقط

أي بمعنى :

إذا أردت ان تتحقق من صحة كلمة المرور الذي أدخلها المستخدم ( وذلك لعملية تسجيل الدخول للبرنامج مثلاً )

الخطوات كالتالي :

كلمة المرور الصحيحة محفوظة في قاعدة البيانات بشكل مشفر ( تمام )

الآن يحاول المستخدم تسجيل الدخول للبرنامج :
بعد أن يقوم المستخدم بإدخال كلمة المرور
1 - تقوم بإعادة كل الخطوات المذكورة بالأعلى مع كلمة المرور الذي قام المستخدم بإدخالها
كود :
           Dim PasswordData As Byte() = System.Text.Encoding.UTF8.GetBytes(Me.PasswordTextBox.Text)
           Dim SHA512 As New System.Security.Cryptography.SHA512Managed
           Dim PasswordHash As Byte() = SHA512.ComputeHash(PasswordData)
إذا كانت نتيجة الإستعلام صفر ( لم يتم إرجاع اي سجل Row )
هذا يعني ( الرسالة المشهورة ) :

"    اسم المستخدم أو كلمة المرور غير صحيحة   "





الآن انت تمتلك كلمة مرور مشفرة ( التي يحاول المستخدم الآن إستخدامها لتسجيل الدخول  )

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

كود :
    SELECT Username FROM [dbo].[UsersTable]
WHERE [Username] = @UserName AND [Password] = @Password



تتم المقارنة بين كلمات المرور وهي في حالت التشفير
إذا تطابقت ( كلمة المرور المشفرة المدخلة ) مع ( كلمة المرور المشفرة الموجودة في قاعدة البيانات )


إذا دخلت على  ( SQL Server 2019 ) وعند عرضك للجدول في قاعدة البيانات
في الإستعلامات سيظهر الحقل بهذا الشكل
   


في وضح التحرير سيظهر الحقل بهذا الشكل ( لأنه لا يمكنك تحرير حقل من نوع مصفوفة بشكل يدوي )
   



هذة الطريقة الأأمن والأقوى المستخدمة في أغلب المواقع على شبكة الانترنت لحفظ كلمات المرور

أتمنى الفكرة تكون واضحة
الرد }}
تم الشكر بواسطة: خالد20
#7
(26-01-22, 12:38 PM)عبدالله الدوسري كتب : بما انك تستخدم SQL DATABASE 2019

استخدم الطريقة :
HashAlgorithm.ComputeHash


أولاً تقوم بتحويل النص العادي (والتي هي كلمة المرور) : تحويلها من نص ( String ) إلى مصفوفة بايتات ( ()Byte )
كود :
Dim PasswordData As Byte() = System.Text.Encoding.UTF8.GetBytes(Me.PasswordTextBox.Text)



ثانياُ : تنشاء متغير باسم ( SHA512 ) من نوع ( System.Security.Cryptography.SHA512Managed )  
وذلك لإستخدام خوارزمية HashAlgorithm ( لتشفير البيانات في إتجاه واحد فقط غير قابل لفك التشفير )
كود :
Dim SHA512 As New System.Security.Cryptography.SHA512Managed


ثالثاً : نستخدم المتغير SHA512 لتشفير البيانات الموجودة في المصفوفة ( PasswordData ) وحفظها في متغير جديد باسم ( PasswordHash )
كود :
Dim PasswordHash As Byte() = SHA512.ComputeHash(PasswordData)



إذا كان صندوق النص ( Me.PasswordTextBox.Text ) يحمل القيمة ( vb4arb.com )
أي ان كلمة المرور = vb4arb.com
بعد عملية التشفير بواسطة الطريقة ComputeHash
النتيجة ستكون كالتالي : وذلك بعد التشفير
لاحظ ان النص الموجود بالأسفل يعبر عن شكل البيانات الموجودة في المصفوفة المشفرة
ولكن المصفوفة المشفرة أساساً ليسة بهذا الشكل ( قمت بتحويلها إلى نص وذلك حتى تتمكن من أخذ فكرة عن شكل الناتج )
كود :
45b6deacb27a617b889f1396da586270a131082c5ad83a9cd916aa72b07c296a43f33290aa9548f9d1b7fbbf169092ca8a25251ea461e688985451d5f8d77d39


******************************************************************************
الطريقة المستخدمة لعرض شكل المصفوفة بشكل نصي :  ( هذا النص البرمجي فقط لشرح شكل المصفوفة وغير مطلوب ,, تم إستخدامة فقط لعرض القيمة الموجودة بالأعلى)
كود :
Dim txt As String = BitConverter.ToString(PasswordHash).Replace("-", "")

******************************************************************************





الآن قم بحفظ قيمة المتغير ( PasswordHash ) والذي يحمل مصفوفة البيانات بعد التشفير
قم بحفظ القيمة في حقل قاعدة البيانات الخاص بكلمة المرور
ويكون نوع الحقل في قاعدة البيانات من نوع ( varbinary ) حصراً

الآن انت تمتلك كلمة مرور محفوظة في قاعدة البيانات ومشفرة ولا يمكن أبداً فك تشفيرها ( لأنها مشفرة بطريقة تشفير بإتجاه واحد ) 
إتجاه واحد يعني تشفير فقط ولا يمكن فك التشفير
بإتجاهين يعني تشفير ويمكن فك التشفير بالعكس


ماذا يمكنك الآن ان تفعل بهذا الحقل ؟؟؟؟
فقط يمكنك إستخدامة للمقارنة فقط

أي بمعنى :

إذا أردت ان تتحقق من صحة كلمة المرور الذي أدخلها المستخدم ( وذلك لعملية تسجيل الدخول للبرنامج مثلاً )

الخطوات كالتالي :

كلمة المرور الصحيحة محفوظة في قاعدة البيانات بشكل مشفر ( تمام )

الآن يحاول المستخدم تسجيل الدخول للبرنامج :
بعد أن يقوم المستخدم بإدخال كلمة المرور
1 - تقوم بإعادة كل الخطوات المذكورة بالأعلى مع كلمة المرور الذي قام المستخدم بإدخالها
كود :
           Dim PasswordData As Byte() = System.Text.Encoding.UTF8.GetBytes(Me.PasswordTextBox.Text)
           Dim SHA512 As New System.Security.Cryptography.SHA512Managed
           Dim PasswordHash As Byte() = SHA512.ComputeHash(PasswordData)
إذا كانت نتيجة الإستعلام صفر ( لم يتم إرجاع اي سجل Row )
هذا يعني ( الرسالة المشهورة ) :

"    اسم المستخدم أو كلمة المرور غير صحيحة   "





الآن انت تمتلك كلمة مرور مشفرة ( التي يحاول المستخدم الآن إستخدامها لتسجيل الدخول  )

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

كود :
    SELECT Username FROM [dbo].[UsersTable]
WHERE [Username] = @UserName AND [Password] = @Password



تتم المقارنة بين كلمات المرور وهي في حالت التشفير
إذا تطابقت ( كلمة المرور المشفرة المدخلة ) مع ( كلمة المرور المشفرة الموجودة في قاعدة البيانات )


إذا دخلت على  ( SQL Server 2019 ) وعند عرضك للجدول في قاعدة البيانات
في الإستعلامات سيظهر الحقل بهذا الشكل



في وضح التحرير سيظهر الحقل بهذا الشكل ( لأنه لا يمكنك تحرير حقل من نوع مصفوفة بشكل يدوي )




هذة الطريقة الأأمن والأقوى المستخدمة في أغلب المواقع على شبكة الانترنت لحفظ كلمات المرور

أتمنى الفكرة تكون واضحة
شكرا اخي الكريم 
الطريقة التي ابحث عنها سهلة جدا وهيا تشغيل  كود في sql  فقط
 Query
كود لتشفير كلمة السر  
وكود للعكس لاظهار كلمة السر 
هذا الكود يشتغل علي كافة المستخدمين بالجدول


الملفات المرفقة صورة/صور
   
الرد }}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سؤال كيفية اظهار reportviewer فى Visual Studio 2019 mohamed2316 2 197 03-08-22, 03:07 AM
آخر رد: mohamed2316
  [سؤال] مشكله في تنصيب فيجوال استوديو 2019 حسن الجلب 3 187 02-08-22, 03:44 PM
آخر رد: حسن الجلب
  [سؤال] لينك تحميل برنامج فيجوال استوديو 2019 حسن الجلب 1 151 29-07-22, 08:59 PM
آخر رد: أبو خالد الشكري
Heart [VB.NET] عدم فتح اضافة مكتبة بالفيجوال 2019 العواد الصغير 0 203 29-06-22, 05:47 PM
آخر رد: العواد الصغير
  [VB.NET] مشكلة لم استطع اضافة print form للفيجوال 2019 ولا 2022 bilgacim 2 849 12-02-22, 04:49 AM
آخر رد: bilgacim
  رابط مباشر ل كريستال ريبورت يعمل مع فيحوال 2019 atefkhalf2004 1 804 02-01-22, 07:50 PM
آخر رد: aljzazy
  استفسار بخوص برنامج صانع الاكواد-Aljzazy Code Builder Verison 4 - 2019 momani33 0 707 17-11-21, 02:05 AM
آخر رد: momani33
  مشكلة في تثبيت فيجوال بيسك 2019 مسلم_١ 0 482 03-11-21, 09:00 PM
آخر رد: مسلم_١
  [VB.NET] مشكلة تظهر عند تنصيب فيجوال ستوديو 2019 اباذر 4 4,660 04-10-21, 03:57 PM
آخر رد: Mohammed_khalil
  سؤال بخصوص اداة ribbon في vb.net 2019 mrfenix93 0 613 03-09-21, 01:21 AM
آخر رد: mrfenix93

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم