السلام عليكم

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

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

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)