اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

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;

ليكون الناتج كلمة سر محمية  وصعبة فك التشفير.

مصادر:

  • 0
نشر

يمكن القول أيضًا بأنّ 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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...