أسامة عرب نشر 10 يونيو 2016 أرسل تقرير نشر 10 يونيو 2016 لديّ سؤال في SQL، ما هي salt وهل لها علاقة بالـ password؟ اقتباس
0 E.Nourddine نشر 10 يونيو 2016 أرسل تقرير نشر 10 يونيو 2016 Salt هي توليد بيانات بشكل عشوائي Random وإضافتها إلى قيمة مدخلة مسبقا ككلمة سر -Password- بهدف الحماية ورفع درجة الأمان حتى يصعب اختراق كلمة السر، إذ تُوفّر نظام إدارة قواعد البياناتSQL إمكانية فعل ذلك، إليك مثال عملي: DECLARE @Salt VARCHAR(25); -- Generate the salt DECLARE @Seed int; DECLARE @LCV tinyint; DECLARE @CTime DATETIME; SET @CTime = GETDATE(); SET @Seed = (DATEPART(hh, @Ctime) * 10000000) + (DATEPART(n, @CTime) * 100000) + (DATEPART(s, @CTime) * 1000) + DATEPART(ms, @CTime); SET @LCV = 1; SET @Salt = CHAR(ROUND((RAND(@Seed) * 94.0) + 32, 3)); WHILE (@LCV < 25) BEGIN SET @Salt = @Salt + CHAR(ROUND((RAND() * 94.0) + 32, 3)); SET @LCV = @LCV + 1; END; ليكون الناتج كلمة سر محمية وصعبة فك التشفير. مصادر: Salted Password Hashing - Doing it Right Add a Salt with the SQL Server HASHBYTES Function اقتباس
0 hassenzouari98 نشر 10 يونيو 2016 أرسل تقرير نشر 10 يونيو 2016 يمكن القول أيضًا بأنّ salt هي إضافة مجموعة من الحروف أو الكلمات إلى أوّل أو آخر أو وسط كلمة السر لحماية أفضل ، ومن ثم يتم حذف هذا الجزء عند مناداة الكلمة من قاعدة البيانات والتثبت فيما إذا كانت مطابقة لكلمة السر المُدخلة ويكون الكود كالتالي : عند القيام بحفظ كلمة السر في قاعدة البيانات: $password = (string) $_GET['password']; //User password $salt = str_pad((string) rand(1, 1000), 4, '0', STR_PAD_LEFT); // This is the salt $user_password = sha512($password . $salt) . $salt; // Concatenate hash with salt عند تسجيل المستخدم للدخول (أي في حالة إذ أردت التثبت من مطابقة كلمة السر المدخلة) $password = (string) $_GET['password']; //Entered password // Of course you must select the data from the database //I removed this step for make the code more easy to understand $user_password = $row['user_password']; // User password from database // extract the salt // just cut off the last 4 chars $salt = substr($user_password, -4); $hash = substr($user_password, 0, -4); // verify if (sha512($password . $salt) == $hash) { echo 'match'; } هذا فقط وسيعمل كل شئ بنجاح المزيد حول salt اقتباس
السؤال
أسامة عرب
لديّ سؤال في SQL، ما هي salt وهل لها علاقة بالـ password؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.