24-01-22, 07:32 PM
ممكن كود لتغير الارقام السرية للمستخدمين في DATABASE SQL 2019
بشكل نجوم ****
والعكس
مثل الصورة المرفقة
بشكل نجوم ****
والعكس
مثل الصورة المرفقة
[سؤال] SQL 2019
|
24-01-22, 07:32 PM
ممكن كود لتغير الارقام السرية للمستخدمين في DATABASE SQL 2019
بشكل نجوم **** والعكس مثل الصورة المرفقة
25-01-22, 08:08 PM
راجع هذا الرابط
https://www.mssqltips.com/sqlservertip/4...-database/ او بامكانك قبل حفظ الرقم السري في قاعدة البيانات ان تجري عليه بعض التعديلات بأن تضيف اوله رقم يتكون مثلا من خانتين وفي اخره رقم ثم تجمع الرقم الناتج مع رقم معين وتضربه برقم معين ثم تقوم بحفظ الناتج الكلي في قاعدة البيانات فعلى افتراض ان الرقم السري 12345 نضيف اوله مثلا 24 واخره 25 فيصبح الرقم 2412344525 ثم نجع الناتج مع الرقم 2000 مثلا فيصبح الرقم كالتالي 241236525 ثم نضرب مثلا ب 17 فيصبح الرقم السري الذي يجزن في قاعدة البيانات هو 4101020925 وعند استدعائه يجب ارجاعه الى الرقم الاصلي بعملية عكسية سورس كود برنامج محاسبة ومبيعات احترافي - سورس كود تطبيق ارسال رصيد من الجوال B4A
سورس كود تطبيق مبيعات للجوال
تيليجرام Abo_anas_kahwaji@
واتساب 00963951283515
تم الشكر بواسطة: خالد20
25-01-22, 08:30 PM
يمكن تشفير الرمز قبل الحفظ ومن ثم فك التشفير عند الاستدعاء
تم الشكر بواسطة: خالد20
25-01-22, 08:52 PM
25-01-22, 11:11 PM
(آخر تعديل لهذه المشاركة : 25-01-22, 11:12 PM {2} بواسطة ابراهيم ايبو.)
السلام عليكم ورحمة الله وبركاته
اخي الكريم محمد بالنسبة لحفظ كلمات السر في قاعدة البيانات على شكل نجمة لا أظن يمكن ذلك او لنقل ليس عندي علم لطريقة ما !! لأن التخزين هو عبارة عن نص وإن قمت بالتخزين على شكل نجمة او نقط فأن النص المخزن لا يعني شيئا سوى نجوم او نقط ولا يمكن تحويلهم كما نفعل مع مريع النص لدي فكرة وسأورد لك مثال عليها بما انك يمكنك قفل قاعدة البيانات بكلمة سر حيث لا يمكن لاحد الدخول اليها فلا ضير ان كتبت كلمات السر في الجدول على حالها لكن يمكننا تحويل كلمات السر هذه عند جلبها الى الداتاغرايد بأن نجعلها بشكل نجوم ولا يمكن رؤيتها وبخاصة ان منعنا التحرير في الداتاغرايد أي Enable Editing=false في المثال التالي نفذت لك الكلام أعلاه وزدت عليه عند اختيار أي سجل سيتم عرضه في مربعي النص واجد للاسم والثاني للباسورد يمكنك عرض كلمة السر او اخفاؤها عبر الشك بوكس ربما تروق لك الفكرة هذه اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
تم الشكر بواسطة: محمد بوقزاحة , خالد20 , خالد20 , عبدالله الدوسري , Ashraf Elafify , Ashraf Elafify
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) هذا يعني ( الرسالة المشهورة ) : " اسم المستخدم أو كلمة المرور غير صحيحة " الآن انت تمتلك كلمة مرور مشفرة ( التي يحاول المستخدم الآن إستخدامها لتسجيل الدخول ) لعملية التحقق من صحة كلمة المرور المدخلة تقوم بإرسال اسم المستخدم مع ( كلمة المرور المشفرة ) إلى قاعدة البيانات في إجراء مخزن مثلاً وعمل إستعلام عادي إذا قام الإستعلام بإرجاع نتيجة لك ( هذا يعني أنه وجد اسم المستخدم وكلمة المرور متطابقة ) والنتيجة عبارة عن سجل واحد ( Row ) ناتج من عملية الإستعلام كود : SELECT Username FROM [dbo].[UsersTable] تتم المقارنة بين كلمات المرور وهي في حالت التشفير إذا تطابقت ( كلمة المرور المشفرة المدخلة ) مع ( كلمة المرور المشفرة الموجودة في قاعدة البيانات ) إذا دخلت على ( SQL Server 2019 ) وعند عرضك للجدول في قاعدة البيانات في الإستعلامات سيظهر الحقل بهذا الشكل في وضح التحرير سيظهر الحقل بهذا الشكل ( لأنه لا يمكنك تحرير حقل من نوع مصفوفة بشكل يدوي ) هذة الطريقة الأأمن والأقوى المستخدمة في أغلب المواقع على شبكة الانترنت لحفظ كلمات المرور أتمنى الفكرة تكون واضحة تم الشكر بواسطة: خالد20
27-01-22, 11:22 AM
(26-01-22, 12:38 PM)عبدالله الدوسري كتب : بما انك تستخدم SQL DATABASE 2019شكرا اخي الكريم الطريقة التي ابحث عنها سهلة جدا وهيا تشغيل كود في sql فقط Query كود لتشفير كلمة السر وكود للعكس لاظهار كلمة السر هذا الكود يشتغل علي كافة المستخدمين بالجدول |
|