سؤال: هل هذه الطريقة صحيحة في تشفير كلمة المرور في mysql و php ؟

السلام عليكم

أريد أن أعرف هل هذه الطريقة التي أستخدم صحيحة وليس فيها مخاطر أمنية

الطريقة كالتالي في نظام تسجيل حساب جديد أو تسجيل دخول

1- أنشأت جدول في قاعدة البيانات بهذه الطريقة

CREATE TABLE `users` (
    `id` INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR(30) NOT NULL,
    `password` VARCHAR(41) NOT NULL,
    `fullname` VARCHAR(30) NOT NULL,
    `date` DATE NOT NULL,
    UNIQUE (`username`)
) ENGINE = MYISAM ;

2- لإنشاء حساب جديد أستخدم sql بهذه الطريقة

INSERT INTO `users` (`username`, `password`,  `date`)
VALUES ('test', PASSWORD('test'), NOW())

3- لتسجيل الدخول أستخدم هذه الطريقة

SELECT `id`, `fullname`, `date`
FROM `users`
WHERE `username` = '$username' AND `password` = PASSWORD('$password')
LIMIT 0, 2

سؤالي هو هل استخدامي لدالة PASSWORD في sql صحيح وليس فيه مخاطر أمنية ؟

وإذا كان صحيحا كم عدد الخانات الذي يجب إعطاؤه لناتج الدالة PASSWORD ؟ (أعطيته 41)


لاتتعب نفسك كثيرا وقم بتشفير كلمة المرور ب md5 مرتين

md5(md5($password))

وغير طول حقل الباسورد الي 32

وهو طول هاش md5