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

السؤال

Recommended Posts

  • 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

  • 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;

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

مصادر:

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...