htpasswd پاس ورڈ جنریٹر

استعمال کا طریقہ 3 مراحل
  1. صارف نام اور پاس ورڈ لکھیں۔
  2. htpasswd اندراج بنائیں دبائیں۔
  3. لائن کاپی کر کے اپنی .htpasswd فائل میں رکھیں۔
تیار کردہ htpasswd سطر

یہ ٹول کیسے کام کرتا ہے

htpasswd فائل وہ طریقہ ہے جس سے Apache اور nginx کسی ڈائرکٹری کو صارف نام اور پاس ورڈ سے محفوظ کرتے ہیں، اور اس کی ہر سطر ایک صارف نام، ایک کولن اور ایک پاس ورڈ ہیش ہے۔ ہیش ہی وہ حصہ ہے جو اہمیت رکھتا ہے: فائل عموماً سائٹ کی اپنی ڈائرکٹری کے اندر ہوتی ہے، اس لیے اس میں موجود کوئی بھی الٹنے کے قابل چیز سرے سے تحفظ نہیں۔ یہ bcrypt کا اندراج بناتا ہے، جو htpasswd کمانڈ خود اپنے -B اختیار کے ساتھ لکھتی ہے۔

لاگت 10 پر مقرر ہے، وہی طے شدہ قدر جو Apache استعمال کرتا ہے، اور یہاں اس کے لیے کوئی کنٹرول نہیں۔ لائبریری $2a$ کا شناخت کنندہ دیتی ہے اور سابقہ بدل کر $2y$ کر دیا جاتا ہے، جو وہی الگورتھم ہے — نیا شناخت کنندہ ان نفاذوں کو نشان زد کرنے کے لیے آیا تھا جو ایک پرانی خامی سے پاک ہوں، اور اس والے میں وہ خامی کبھی تھی ہی نہیں — اور $2y$ ہی وہ ہے جو کوئی منتظم فائل میں دیکھنے کی توقع رکھتا ہے۔

فائل درست بنانا

  • صارف نام میں کولن نہیں آ سکتا: یہی خانوں کو جدا کرنے والا نشان ہے، اس لیے کولن ایسی سطر بنا دیتا ہے جو پڑھی ہی نہیں جا سکتی۔ اسے لکھنے کے بجائے یہاں مسترد کر دیا جاتا ہے۔
  • جہاں ممکن ہو فائل ویب روٹ سے باہر رکھیں: ہیش شدہ ہونے کے باوجود پاس ورڈ فائل ایسی چیز نہیں جسے پیش کیا جائے۔ اگر اسے اندر ہی رہنا ہو تو یقینی بنائیں کہ سرور اس کی درخواستیں مسترد کرنے کے لیے ترتیب دیا گیا ہے۔
  • Bcrypt صرف پہلے 72 بائٹ پڑھتا ہے: اس سے لمبا پاس ورڈ خاموشی سے کاٹ دیا جاتا ہے، اس لیے ایسا اندراج بنانے کے بجائے جو دِکھنے سے کمزور ہو، اسے یہاں مسترد کر دیا جاتا ہے۔
  • بنیادی توثیق ہر درخواست پر پاس ورڈ بھیجتی ہے: اسے صرف کنکشن ہی محفوظ رکھتا ہے، اس لیے یہ HTTPS کے پیچھے ہی مناسب ہے اور کہیں نہیں۔

A real hash, not something that merely looks encoded

Every line of an htpasswd file is a username, a colon, and a password hash, and the hash is the part that actually matters — the file itself usually sits inside the site's own directory, so anything reversible written there offers no protection at all. Base64 is sometimes mistaken for a hash because the output looks similarly unreadable, but it is only an encoding: it reverses in a single step, and a password stored that way is effectively stored in the clear. The [msm_tool slug="htpasswd-generator"] produces a genuine bcrypt entry, the same format the `htpasswd` command itself writes with its `-B` option.

The cost is fixed at ten

There is no cost control here; every entry is generated at cost 10, which is Apache's own default. Anyone who wants a different cost factor for a different purpose has the dedicated bcrypt tool, which exposes that control directly — this one is built specifically to produce what an `.htpasswd` file expects, not a general-purpose hash.

Why the hash starts with $2y$ rather than $2a$

Both identifiers name the same algorithm. The newer `$2y$` prefix exists to mark implementations that are free of an old sign-extension bug in certain non-ASCII passwords — a bug this implementation never had — and it is rewritten to that prefix regardless, because `$2y$` is what Apache writes itself and what an administrator opening the file expects to see.

A colon in the username breaks the file

The colon is the field separator between username and hash, so a username containing one would produce a line the file format cannot parse correctly. That case is refused outright rather than written out and left to fail quietly later.

Where the file should actually live

Placing `.htpasswd` outside the web root is the safer choice wherever the hosting setup allows it, since even a properly hashed password file is not something meant to be served to a browser. Where it has to sit inside the web root, the server needs an explicit rule blocking direct requests for it — the file being hashed does not make serving it harmless.

Basic authentication needs HTTPS, not just a hash

Basic authentication sends the password on every single request, protected by nothing but the connection it travels over. A carefully generated hash in the file does not change that; the credential is only as safe as the HTTPS in front of it.

اکثر پوچھے گئے سوالات

خاص طور پر htpasswd پاس ورڈ جنریٹر کے بارے میں۔ اس زمرے سے متعلق عمومی سوالات کے جواب زمرے کے صفحے پر موجود ہیں۔

Bcrypt، لاگت 10 پر — وہی جو htpasswd کمانڈ کا -B اختیار دیتا ہے۔ Apache 2.4 اور nginx دونوں اسے قبول کرتے ہیں۔
یہاں نہیں؛ یہ 10 پر مقرر ہے، جو Apache کی اپنی طے شدہ قدر ہے۔ اسی زمرے کا bcrypt والا آلہ لاگت کا کنٹرول دیتا ہے اگر آپ کو کوئی اور درکار ہو۔
دونوں ایک ہی الگورتھم ہیں۔ نیا شناخت کنندہ ان نفاذوں کو نشان زد کرتا ہے جو ایک پرانی خامی سے پاک ہوں، اور Apache یہی لکھتا ہے، اس لیے منتظم یہی دیکھنے کی توقع رکھتا ہے۔
اگر آپ کا ہوسٹ اجازت دے تو ویب روٹ سے باہر۔ اگر اندر ہی رکھنی پڑے تو سرور کو اس کی درخواستیں مسترد کرنے کے لیے ترتیب دیں۔
صرف HTTPS پر۔ پاس ورڈ ہر درخواست کے ساتھ جاتا ہے اور اسے صرف کنکشن ہی محفوظ رکھتا ہے۔

نئے ٹولز، خصوصیات اور کارکردگی بڑھانے کے مشوروں کی اطلاع پانے کے لیے سبسکرائب کریں۔