আমি কীভাবে আমার ব্যবহারকারীদের পাসওয়ার্ডগুলি নিরাপদে সংরক্ষণ করতে পারি?


169

এটি প্লেইন এমডি 5 এর চেয়ে আরও কতটা নিরাপদ ? আমি সবে পাসওয়ার্ড সুরক্ষার সন্ধান শুরু করেছি। আমি পিএইচপি-তে বেশ নতুন।

$salt = 'csdnfgksdgojnmfnb';

$password = md5($salt.$_POST['password']);
$result = mysql_query("SELECT id FROM users
                       WHERE username = '".mysql_real_escape_string($_POST['username'])."'
                       AND password = '$password'");

if (mysql_num_rows($result) < 1) {
    /* Access denied */
    echo "The username or password you entered is incorrect.";
} 
else {
    $_SESSION['id'] = mysql_result($result, 0, 'id');
    #header("Location: ./");
    echo "Hello $_SESSION[id]!";
}

টীকা পিএইচপি 5.4+ এ এতে নির্মিত হয়েছে
বেনিয়ামিন

ওপেনওয়ালের পিএইচপি পাসওয়ার্ড হ্যাশিং ফ্রেমওয়ার্ক (পিএইচপাস) দেখুন। এটির বহনযোগ্য এবং ব্যবহারকারীর পাসওয়ার্ডগুলিতে প্রচুর সাধারণ আক্রমণগুলির বিরুদ্ধে কঠোর।
jww

1
বাধ্যতামূলক " স্ট্রিং ইন্টারপোলেশন পরিবর্তে পিডিও ব্যবহার করুন ", আজ এই প্রশ্নটি নিয়ে লোকেরা হোঁচট খাচ্ছে।
ফান্ড মনিকার লসুইট

উত্তর:


270

আপনার পাসওয়ার্ড স্টোরেজ স্কিমটি সুরক্ষিত করার সবচেয়ে সহজ উপায় হ'ল স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার করে

কারণ বেশিরভাগ প্রোগ্রামার একা মোকাবেলা করার চেয়ে সুরক্ষা অনেক জটিল এবং আরও অদৃশ্য স্ক্রু আপ সম্ভাবনার সাথে থাকে, একটি স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার প্রায় সর্বদা সহজ এবং সবচেয়ে সুরক্ষিত (যদি একমাত্র না হয়) উপলব্ধ বিকল্প হয়।


নতুন পিএইচপি পাসওয়ার্ড এপিআই (5.5.0+)

আপনি যদি পিএইচপি সংস্করণ 5.5.0 বা আরও নতুন ব্যবহার করে থাকেন তবে আপনি নতুন সরলীকৃত পাসওয়ার্ড হ্যাশিং এপিআই ব্যবহার করতে পারেন

পিএইচপি এর পাসওয়ার্ড এপিআই ব্যবহার করে কোডের উদাহরণ:

<?php
// $hash is what you would store in your database
$hash = password_hash($_POST['password'], PASSWORD_DEFAULT, ['cost' => 12]);

// $hash would be the $hash (above) stored in your database for this user
$checked = password_verify($_POST['password'], $hash);
if ($checked) {
    echo 'password correct';
} else {
    echo 'wrong credentials';
}

(যদি আপনি এখনও লেগ্যাসি 5.3.7 ব্যবহার করছেন বা নতুনতর আপনি বিল্ড-ইন ফাংশনগুলিতে অ্যাক্সেস পেতে ircmaxell / password_compat ইনস্টল করতে পারেন )


লবণযুক্ত হ্যাশগুলির উপর উন্নতি করা: মরিচ যোগ করুন

আপনি যদি অতিরিক্ত সুরক্ষা চান তবে সুরক্ষা লোকেরা এখন (2017 ) লবণাক্ত পাসওয়ার্ড হ্যাশগুলিতে (স্বয়ংক্রিয়ভাবে) একটি ' মরিচ ' যুক্ত করার পরামর্শ দেয়।

আছে: একটি সহজ, ড্রপ ক্লাসে যে নিরাপদে কার্যকরী এই প্যাটার্ন, আমি সুপারিশ করা হয় Netsilik / PepperedPasswords ( GitHub )।
এটি একটি এমআইটি লাইসেন্স নিয়ে আসে, তাই আপনি এমনকি মালিকানাধীন প্রকল্পগুলিতে আপনি এটি ব্যবহার করতে পারেন।

কোড ব্যবহারের উদাহরণ Netsilik/PepperedPasswords:

<?php
use Netsilik/Lib/PepperedPasswords;

// Some long, random, binary string, encoded as hexadecimal; stored in your configuration (NOT in your Database, as that would defeat the entire purpose of the pepper).
$config['pepper'] = hex2bin('012345679ABCDEF012345679ABCDEF012345679ABCDEF012345679ABCDEF');

$hasher = new PepperedPasswords($config['pepper']);

// $hash is what you would store in your database
$hash = $hasher->hash($_POST['password']);

// $hash would be the $hash (above) stored in your database for this user
$checked = $hasher->verify($_POST['password'], $hash);
if ($checked) {
    echo 'password correct';
} else {
    echo 'wrong credentials';
}


ওল্ড স্ট্যান্ডার্ড লাইব্রেরি

দয়া করে নোট করুন: আপনার আর এটির প্রয়োজন হবে না! এটি কেবল এখানে historicalতিহাসিক উদ্দেশ্যে রয়েছে।

এক নজরে দেখুন: পোর্টেবল পিএইচপি পাসওয়ার্ড হ্যাশিং ফ্রেমওয়ার্ক : phpass এবং নিশ্চিত করুন যে আপনি CRYPT_BLOWFISHযদি সম্ভব হয় তবে অ্যালগরিদম ব্যবহার করেছেন ।

Phpass (v0.2) ব্যবহার করে কোডের উদাহরণ:

<?php
require('PasswordHash.php');

$pwdHasher = new PasswordHash(8, FALSE);

// $hash is what you would store in your database
$hash = $pwdHasher->HashPassword( $password );

// $hash would be the $hash (above) stored in your database for this user
$checked = $pwdHasher->CheckPassword($password, $hash);
if ($checked) {
    echo 'password correct';
} else {
    echo 'wrong credentials';
}

পিএইচপাস বেশ কয়েকটি সুপরিচিত প্রকল্পে প্রয়োগ করা হয়েছে:

  • phpBB3 তে
  • ওয়ার্ডপ্রেস 2.5+ পাশাপাশি বিবিপ্রেস
  • ড্রুপাল 7 রিলিজ, (দ্রুপাল 5 এবং 6 এর জন্য উপলব্ধ মডিউল)
  • অন্যান্য

ভাল কথাটি হ'ল আপনাকে বিশদ সম্পর্কে উদ্বিগ্ন হওয়ার দরকার নেই, এই বিবরণগুলি অভিজ্ঞ ব্যক্তিরা দ্বারা প্রোগ্রাম করেছেন এবং ইন্টারনেটে অনেক লোকেরা পর্যালোচনা করেছেন।

পাসওয়ার্ড স্টোরেজ স্কিম সম্পর্কিত আরও তথ্যের জন্য, জেফের ব্লগ পোস্টটি পড়ুন: আপনি সম্ভবত পাসওয়ার্ড ভুলভাবে সংরক্ষণ করছেন

আপনি ' আমি নিজে এটি করব, ধন্যবাদ ' পদ্ধতির জন্য যান তবে আপনি যা করেন না, ব্যবহার করবেন না MD5বা SHA1আর ব্যবহার করবেন না । এগুলি দুর্দান্ত হ্যাশিং অ্যালগরিদম, তবে সুরক্ষার প্রয়োজনে ভাঙ্গা বিবেচিত ।

বর্তমানে, CRYPT_BLOWFISH সহ ক্রিপ্ট ব্যবহার করা সেরা অনুশীলন।
পিএইচপি-তে CRYPT_BLOWFISH হ'ল Bcrypt হ্যাশ একটি বাস্তবায়ন। Bcrypt ব্লোফিশ ব্লক সাইফারের উপর ভিত্তি করে তৈরি করা হয়েছে, এটি অ্যালগরিদমকে কমিয়ে দেওয়ার জন্য ব্যয়বহুল কী সেটআপ ব্যবহার করে।


29

আপনি যদি এসকিউএল স্টেটমেন্টগুলি না দিয়ে প্যারামিটারাইজড ক্যোয়ারী ব্যবহার করেন তবে আপনার ব্যবহারকারীরা আরও বেশি নিরাপদ হবে। এবং লবণ প্রতিটি ব্যবহারকারীর জন্য স্বতন্ত্র হওয়া উচিত এবং পাসওয়ার্ড হ্যাশ সহ সংরক্ষণ করা উচিত।


1
নেটটুট + এ পিএইচপি-তে সুরক্ষা সম্পর্কে একটি ভাল নিবন্ধ রয়েছে, পাসওয়ার্ড সল্টিংয়ের কথাও উল্লেখ করা হয়েছে। হতে পারে আপনার নজর দেওয়া উচিত: নেট.tutsplus.com/tutorials/php/…
Fábio Antunes

3
মডেল হিসাবে ব্যবহার করতে নেটটস + একটি খুব খারাপ নিবন্ধ - এটি এমডি 5 এর ব্যবহারকে অন্তর্ভুক্ত করে যা নুনের সাহায্যে খুব সহজেই নৃশংস হতে পারে। : তার জন্যে শুধু PHPass গ্রন্থাগার যা অনেক দূরে অনেক দূরে আপনি একটি টিউটোরিয়াল সাইটে খুঁজে পেতে পারেন কোন কোড চেয়ে ভাল, অর্থাত্ এই উত্তরটি ব্যবহার stackoverflow.com/questions/1581610/...
RichVel

11

প্রতিটি ব্যবহারকারীর জন্য একটি অনন্য লবণের জন্য আরও ভাল উপায়।

লবণ থাকার সুবিধাটি হ'ল আক্রমণকারীর পক্ষে প্রতিটি অভিধান শব্দের MD5 স্বাক্ষর প্রাক-উত্পন্ন করা শক্ত করে তোলে। তবে যদি কোনও আক্রমণকারী জানতে পারে যে আপনার কাছে একটি নির্দিষ্ট লবণ রয়েছে, তবে তারা আপনার নির্ধারিত লবণের দ্বারা উপস্থাপিত প্রতিটি অভিধান শব্দের MD5 স্বাক্ষর প্রাক-উত্পন্ন করতে পারে।

আরও ভাল উপায় হ'ল প্রতিটি সময় ব্যবহারকারী তাদের পাসওয়ার্ড পরিবর্তন করেন, আপনার সিস্টেমটি এলোমেলো লবণ উত্পন্ন করে এবং সেই লবণটিকে ব্যবহারকারীর রেকর্ডের সাথে সঞ্চয় করে। পাসওয়ার্ডটি পরীক্ষা করা কিছুটা ব্যয়বহুল করে তোলে (যেহেতু MD5 স্বাক্ষর উত্পন্ন করার আগে আপনাকে লবণের সন্ধান করতে হবে) তবে আক্রমণকারীকে এমডি 5 এর প্রাক-জেনারেট করা আরও জটিল করে তোলে।


3
সল্টগুলি সাধারণত পাসওয়ার্ড হ্যাশ (যেমন crypt()ফাংশনের আউটপুট ) এর সাথে একসাথে সংরক্ষণ করা হয় । এবং যেহেতু আপনাকে পাসওয়ার্ড হ্যাশটি পুনরুদ্ধার করতে হবে, কোনও ব্যবহারকারী নির্দিষ্ট লবণের সাহায্যে প্রক্রিয়াটি আরও ব্যয়বহুল হবে না। (বা আপনি কী বোঝাতে চেয়েছিলেন যে নতুন এলোমেলো লবণ উত্পাদন ব্যয়বহুল? আমি সত্যিই তা মনে করি না।) অন্যথায় +1 1
ইনশাল্লাহ

সুরক্ষার উদ্দেশ্যে, আপনি কেবল সঞ্চিত প্রক্রিয়াগুলির মাধ্যমে টেবিলটিতে অ্যাক্সেস সরবরাহ করতে এবং হ্যাশটিকে কখনও ফিরে আসা থেকে আটকাতে পারেন। পরিবর্তে, ক্লায়েন্ট হ্যাশটিকে যা বলে তা পাস করে এবং একটি সাফল্য বা ব্যর্থতার পতাকা পায়। এটি সঞ্চিত
প্রকটটিকে

@ ইনশাল্লাহ - সকল ব্যবহারকারীর যদি একই লবণ থাকে তবে আপনি ব্যবহারকারীর বিপরীতে ইউজার 1-তে ব্যবহার করা অভিধান আক্রমণটি পুনরায় ব্যবহার করতে পারেন। তবে যদি প্রতিটি ব্যবহারকারীর একটি স্বতন্ত্র লবণ থাকে তবে আপনার আক্রমণ করা প্রতিটি ব্যবহারকারীর জন্য আপনাকে একটি নতুন অভিধান তৈরি করতে হবে।
আর স্যামুয়েল ক্লাতচকো

@ আর স্যামুয়েল - এ কারণেই আমি আপনার উত্তরটি ভোট দিয়েছি, কারণ এটি এ জাতীয় আক্রমণ এড়াতে সেরা অনুশীলনের কৌশলটি প্রস্তাব করে। আমার মন্তব্যটি প্রতি ব্যবহারকারী নুনের অতিরিক্ত মূল্য সম্পর্কে আপনি যা বলেছিলেন তা সম্পর্কে আমার বিভ্রান্তি প্রকাশ করার জন্য ছিল, যা আমি কিছুতেই বুঝতে পারি নি। (যেহেতু "লবণগুলি সাধারণত পাসওয়ার্ড হ্যাশের সাথে একত্রে সংরক্ষণ করা হয়" প্রতি ব্যবহারকারী নুনের জন্য অতিরিক্ত কোনও স্টোরেজ এবং সিপিইউ প্রয়োজনীয়তা এতটা ক্ষুদ্রতর,
এটিরও

@ ইনশাল্লাহ - আমি হ্যাশ পাসওয়ার্ডটি ঠিক আছে কিনা আপনার ডাটাবেস যাচাই করা আছে সে ক্ষেত্রে আমি ভাবছিলাম (তারপরে আপনার লবণের জন্য একটি ডিবি পুনরুদ্ধার এবং হ্যাশ পাসওয়ার্ড চেক করার জন্য একটি দ্বিতীয় ডিবি অ্যাক্সেস রয়েছে)। আপনি যে ক্ষেত্রে লিংক / হ্যাশ পাসওয়ার্ডটি একটি একক পুনরুদ্ধারে ডাউনলোড করেন এবং ঠিক তারপরে ক্লায়েন্টের সাথে তুলনা করুন do বিভ্রান্তির জন্য দুঃখিত.
আর স্যামুয়েল ক্লাটচো

11

পিএইচপি 5.5 দিয়ে (আমি যা বর্ণনা করি তা পূর্ববর্তী সংস্করণগুলিতেও উপলভ্য, নীচে দেখুন) আমি এর নতুন, অন্তর্নির্মিত সমাধানটি ব্যবহার করার পরামর্শ দিতে চাই: password_hash()এবং password_verify()। আপনার প্রয়োজনীয় পাসওয়ার্ড সুরক্ষার স্তর অর্জনের জন্য এটি বিভিন্ন বিকল্প সরবরাহ করে (উদাহরণস্বরূপ $optionsঅ্যারের মাধ্যমে "ব্যয়" পরামিতি নির্দিষ্ট করে )

<?php
var_dump(password_hash("my-secret-password", PASSWORD_DEFAULT));

$options = array(
    'cost' => 7, // this is the number of rounds for bcrypt
    // 'salt' => 'TphfsM82o1uEKlfP9vf1f', // you could specify a salt but it is not recommended
);
var_dump(password_hash("my-secret-password", PASSWORD_BCRYPT, $options));
?>

ফিরে আসবে

string(60) "$2y$10$w2LxXdIcqJpD6idFTNn.eeZbKesdu5y41ksL22iI8C4/6EweI7OK."
string(60) "$2y$07$TphfsM82o1uEKlfP9vf1fOKohBqGVXOJEmnUtQu7Y1UMft1R4D3d."

আপনি দেখতে পাচ্ছেন যে স্ট্রিংটিতে লবণের পাশাপাশি বিকল্পগুলির মধ্যে নির্দিষ্ট করা ব্যয়ও রয়েছে। এটিতে ব্যবহৃত অ্যালগরিদমও রয়েছে।

সুতরাং, পাসওয়ার্ডটি পরীক্ষা করার সময় (উদাহরণস্বরূপ যখন ব্যবহারকারী লগ ইন করে), প্রশংসামূলক password_verify()ফাংশনটি ব্যবহার করার সময় এটি পাসওয়ার্ড হ্যাশ থেকেই প্রয়োজনীয় ক্রিপ্টো প্যারামিটারগুলি বের করে আনবে।

যখন কোনও লবণের উল্লেখ না করে, উত্পন্ন পাসওয়ার্ড হ্যাশ প্রতিটি কলেই আলাদা হবে password_hash()কারণ লবণ এলোমেলোভাবে উত্পন্ন হয়। অতএব একটি নতুন উত্পন্ন একের সাথে পূর্ববর্তী হ্যাশের তুলনা করা এমনকি সঠিক পাসওয়ার্ডের জন্যও ব্যর্থ হবে।

যাচাইকরণ এটির মতো কাজ করে:

var_dump(password_verify("my-secret-password", '$2y$10$BjHJbMCNWIJq7xiAeyFaHOGaO0jjNoE11e0YAer6Zu01OZHN/gk6K'));
var_dump(password_verify("wrong-password", '$2y$10$BjHJbMCNWIJq7xiAeyFaHOGaO0jjNoE11e0YAer6Zu01OZHN/gk6K'));

var_dump(password_verify("my-secret-password", '$2y$07$TphfsM82o1uEKlfP9vf1fOKohBqGVXOJEmnUtQu7Y1UMft1R4D3d.'));
var_dump(password_verify("wrong-password", '$2y$07$TphfsM82o1uEKlfP9vf1fOKohBqGVXOJEmnUtQu7Y1UMft1R4D3d.'));

আমি আশা করি যে এই অন্তর্নির্মিত ফাংশনগুলি সরবরাহ করা ডেটা চুরির ক্ষেত্রে শীঘ্রই আরও ভাল পাসওয়ার্ড সুরক্ষা প্রদান করবে, কারণ এটি প্রোগ্রামারকে যথাযথ প্রয়োগের জন্য চিন্তাভাবনার পরিমাণ হ্রাস করে।

একটি ছোট গ্রন্থাগার আছে (একটি পিএইচপি ফাইল) যা আপনাকে password_hashপিএইচপি 5.3.7+ এ পিএইচপি 5.5 দেবে: https://github.com/ircmaxell/password_compat


2
বেশিরভাগ ক্ষেত্রে লবণের পরামিতি বাদ দেওয়া ভাল। ক্রিয়াকলাপটি অপারেটিং সিস্টেমের এলোমেলো উত্স থেকে একটি লবণ তৈরি করে, আপনার নিজের থেকে আরও ভাল লবণ সরবরাহ করার খুব কম সম্ভাবনা রয়েছে।
মার্টিনস্টোকেলি

1
এটাই আমি লিখেছি, তাই না? "যদি কোনও লবণ নির্দিষ্ট না করা থাকে তবে এলোমেলোভাবে উত্পন্ন হয়, এজন্য লবণ নির্দিষ্ট না করাই ভাল"
আকির্ক

বেশিরভাগ উদাহরণগুলি দেখায় যে কীভাবে উভয় পরামিতি যুক্ত করা যায়, এমনকি যখন এটি একটি লবণ যুক্ত করার পরামর্শ দেওয়া হয় না, তাই কেন আমি অবাক হই? এবং সত্যি কথা বলতে, আমি কেবল কোডটির পিছনে মন্তব্যটি পড়েছি, পরবর্তী লাইনে নয়। যাইহোক, উদাহরণটি কীভাবে ফাংশনটিকে সর্বোত্তমভাবে ব্যবহার করতে হয় তা দেখানো ভাল না?
মার্টিনস্টোকেলি

আপনি ঠিক বলেছেন, আমি একমত। আমি সেই অনুযায়ী আমার উত্তর পরিবর্তন করেছি এবং লাইনটি মন্তব্য করেছি। ধন্যবাদ
আকির্ক

সংরক্ষিত পাসওয়ার্ড এবং প্রবেশ করা পাসওয়ার্ড একই কিনা আমার কীভাবে পরীক্ষা করা উচিত? আমি ব্যবহার করছি password_hash()এবং আমি password_verifyযে পাসওয়ার্ড ব্যবহার করেছি তা সঠিক নয় (সঠিক বা না) আমি সঠিক পাসওয়ার্ড দিয়ে শেষ করি
ব্রাউনম্যান রিভাইভাল

0

এটা আমার সাথে ঠিক আছে. মিঃ আটউড এমডি 5 এর শক্তি সম্পর্কে লিখেছিলেন রেনবো টেবিলের বিরুদ্ধে , এবং মূলত এর মতো লম্বা লবণের সাথে আপনি বেশ সুন্দর বসে আছেন (যদিও কিছু এলোমেলো বিরাম / সংখ্যা, এটি এটি উন্নতি করতে পারে)।

আপনি SHA-1 এও দেখতে পারেন যা আজকাল আরও জনপ্রিয় হয়ে উঠছে বলে মনে হচ্ছে।


6
মিঃ আতউডের পোস্টের নীচে থাকা নোটটি (লাল রঙে) সুরক্ষা অনুশীলনকারী এর অন্য একটি পোস্টের সাথে লিঙ্ক করেছে যা জানিয়েছে যে পাসওয়ার্ডগুলি সংরক্ষণের জন্য এমডি 5, এসএএএ 1 এবং অন্যান্য দ্রুত হ্যাশ ব্যবহার করে।
sipwiz

2
@ ম্যাথেজ শার্লে: আমি ব্যয় করি যে ব্যয়বহুল পাসওয়ার্ড হ্যাশিং অ্যালগরিদম দ্বারা আরোপিত অতিরিক্ত প্রচেষ্টা ভুয়া সুরক্ষা। এটি সহজেই অনুমানযোগ্য পাসওয়ার্ডগুলির নিষ্ঠুরতা থেকে রক্ষা করতে পারে। যদি আপনি লগইন প্রচেষ্টা সীমাবদ্ধ করে থাকেন তবে আপনি একই জিনিস থেকে রক্ষা করছেন (যদিও আরও কার্যকরভাবে)। তবে যদি কোনও বিদ্বেষী ডিবি দ্বারা সঞ্চিত হ্যাশগুলিতে অ্যাক্সেস পেয়ে থাকে তবে তিনি এ জাতীয় (সহজেই অনুমানযোগ্য) পাসওয়ার্ডগুলি মোটামুটি দ্রুত (কত সহজে অনুমানযোগ্য তার উপর নির্ভরশীল) জোর করতে সক্ষম হবেন। SHA-256 ক্রিপ্ট অ্যালগরিদমের জন্য ডিফল্ট 10000 বৃত্তাকার, যাতে এটি আরও 10000 গুণ আরও কঠিন করে তোলে।
ইনশাল্লাহ

3
ধীরে ধীরে হ্যাশগুলি আসলে খুব দ্রুত একটি খুব দ্রুত সংখ্যক বার পুনরাবৃত্তি করে এবং প্রতিটি পুনরাবৃত্তির মধ্যে ডেটা চারপাশে পরিবর্তন করে তৈরি করা হয়। লক্ষ্যটি নিশ্চিত করা যে খারাপ লোকটি যদি আপনার পাসওয়ার্ডের হ্যাশগুলির একটি অনুলিপি পায়, তবুও আপনার হ্যাশগুলির বিরুদ্ধে তার অভিধানটি পরীক্ষা করতে তাকে যথেষ্ট পরিমাণ সিপিইউ বার্ন করতে হবে।
ক্যাফে

4
@ কেএফ: আমার বিশ্বাস বিস্রাইপ অ্যালগরিদম একস্লো ব্লফিশ কী শিডিয়ুলিংয়ের পরামিতি ব্যয়বহুল ব্যবহার করে; এটি কীভাবে কাজ করে তা সম্পূর্ণরূপে নিশ্চিত নয় তবে কী শিডিউলিং প্রায়শই কোনও এনক্রিপশন সম্পন্ন করার আগে একটি সাইফার প্রসঙ্গ অবজেক্টটি ইন করার সময় খুব ব্যয়বহুল ক্রিয়াকলাপ হয়।
ইনশাল্লাহ

3
ইনশাল্লাহ: এটি সত্য - বিক্রিপ্ট অ্যালগরিদম একটি আলাদা নকশা, যেখানে অন্তর্নিহিত ক্রিপ্টো আদিম হ্যাশ ফাংশন না করে একটি ব্লক সাইফার। আমি পিএইচকে এর এমডি 5 ক্রিপ্ট () এর মতো হ্যাশ ফাংশনগুলির উপর ভিত্তি করে স্কিমগুলি উল্লেখ করছি।
ক্যাফে 21

0

আমি যুক্ত করতে চাই:

  • দৈর্ঘ্য দ্বারা ব্যবহারকারী পাসওয়ার্ড সীমাবদ্ধ করবেন না

পুরানো সিস্টেমগুলির সাথে সামঞ্জস্যের জন্য প্রায়শই পাসওয়ার্ডের সর্বাধিক দৈর্ঘ্যের সীমা নির্ধারণ করে। এটি একটি খারাপ সুরক্ষা নীতি: আপনি যদি সীমাবদ্ধতা সেট করে থাকেন তবে এটি পাসওয়ার্ডের সর্বনিম্ন দৈর্ঘ্যের জন্য সেট করুন।

  • ইমেলের মাধ্যমে ব্যবহারকারীর পাসওয়ার্ডগুলি প্রেরণ করবেন না

ভুলে যাওয়া পাসওয়ার্ড পুনরুদ্ধারের জন্য আপনার ঠিকানাটি পাঠানো উচিত যার মাধ্যমে ব্যবহারকারী পাসওয়ার্ডটি পরিবর্তন করতে পারেন।

  • ব্যবহারকারীর পাসওয়ার্ডগুলির হ্যাশ আপডেট করুন

পাসওয়ার্ডের হ্যাশটি পুরানো হতে পারে (অ্যালগোরিদমের প্যারামিটারগুলি আপডেট হতে পারে)। ফাংশনটি ব্যবহার করে password_needs_rehash()আপনি এটি পরীক্ষা করে দেখতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.