ছায়ার জন্য কীভাবে একটি SHA-512 হ্যাশ পাসওয়ার্ড তৈরি করবেন?


62

পূর্ববর্তী এসএফ প্রশ্নগুলি আমি দেখেছি যে উত্তরগুলি এমডি 5 হ্যাশ পাসওয়ার্ড তৈরি করে।

SHA-512 হ্যাশ পাসওয়ার্ড তৈরি করার জন্য কারও কাছে কি কোনও পরামর্শ রয়েছে? আমি স্ক্রিপ্টের পরিবর্তে একটি লাইনার পছন্দ করতাম তবে, যদি কোনও স্ক্রিপ্টই একমাত্র সমাধান হয় তবে তাও ঠিক আছে।

হালনাগাদ

পূর্ববর্তী পাই 2 সংস্করণটিকে এটির সাথে প্রতিস্থাপন করা হচ্ছে:

python3 -c "import crypt;print(crypt.crypt(input('clear-text pw: '), crypt.mksalt(crypt.METHOD_SHA512)))"

4
SHA এবং MD5 এনক্রিপশন নয় । তারা হ্যাশিং অ্যালগোরিদম। গুরুত্বপূর্ণ পার্থক্য হ্যাশ ডেটা পুনরুদ্ধারযোগ্য নয়। তোমার কি করা উচিত?
স্মলক্ল্যাঞ্জার

ধন্যবাদ. প্রশ্নটি পরিবর্তন করেছে। man 5 shadowএটিকে "এনক্রিপ্ট করা পাসওয়ার্ড" হিসাবে উল্লেখ করে তাই আমি সেই পদটি বজায় রেখেছিলাম।
বেলমিন ফার্নান্দেজ

2
যদি কিছুটা স্পর্শকাতর হয়ে থাকে তবে ক্ষমাপ্রার্থী। আপনি কী নিজেই ছায়া-সামঞ্জস্যপূর্ণ পাসওয়ার্ড হ্যাশগুলি উত্পন্ন করার চেষ্টা করছেন? যদি তা হয় তবে আপনার /etc/shadowসামগ্রীগুলি একবার দেখুন । আপনি দেখতে পাবেন $x$salt$hash। আধুনিক লিনাক্সের উপর সাধারণ থাকার সাথে xব্যবহৃত আলগোরিদিমকে বোঝায় যা sha512 (দেখুন )। নীচের উত্তরগুলির মধ্যে যে কোনও একটিই হ্যাশ তৈরি করবে, যতক্ষণ আপনি এটিকে একই লবণ দেন। crypt6man 3 crypt
স্মলক্ল্যাঞ্জার

2
ওহ না, মোটেও ছদ্মবেশী নয়। আপনি কিছু স্পষ্ট করে দিয়েছিলেন যে সম্পর্কে আমি বিভ্রান্ত হয়েছিলাম তাই আমি খুব কৃতজ্ঞ স্যার!
বেলমিন ফার্নান্দেজ

1
ধন্যবাদ! পাসলিব-ভিত্তিক একটিই আমি ওএস এক্সে কাজ করতে সক্ষম হয়েছি
স্টিগ ব্রুটাসেট

উত্তর:


65

এখানে একটি ওলাইনার রয়েছে:

python -c 'import crypt; print crypt.crypt("test", "$6$random_salt")'

পাইথন ৩.৩++ mksaltক্রিপ্টে অন্তর্ভুক্ত রয়েছে , যা এটি ব্যবহার করা আরও সহজ (এবং আরও সুরক্ষিত) করে তোলে:

python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'

আপনি একটি যুক্তি সরবরাহ না করেন তাহলে থেকে crypt.mksalt(এটা গ্রহণ করতে পারে crypt.METHOD_CRYPT, ...MD5, SHA256, এবং SHA512), এটা সবচেয়ে শক্তিশালী প্রাপ্তিসাধ্য ব্যবহার করবে।

হ্যাশের আইডি (প্রথমটির পরে সংখ্যা $) ব্যবহৃত পদ্ধতির সাথে সম্পর্কিত:

  • 1 -> এমডি 5
  • 2 এ -> ব্লোফিশ (মূল লাইন গ্লিবসিতে নয়; কিছু লিনাক্স বিতরণে যুক্ত করা হয়েছে)
  • 5 -> SHA-256 (glibc 2.7 সাল থেকে)
  • 6 -> SHA-512 (glibc 2.7 সাল থেকে)

আমি আপনাকে পরামর্শ দিচ্ছি যে লবণের কী কী এবং যেমন এবং ছোট স্ক্যামাররা এনক্রিপশন এবং হ্যাশিংয়ের মধ্যে পার্থক্য মন্তব্য করে।

আপডেট 1: উত্পাদিত স্ট্রিং ছায়া এবং কিকস্টার্ট স্ক্রিপ্টগুলির জন্য উপযুক্ত। আপডেট 2: সতর্কতা। আপনি যদি ম্যাক ব্যবহার করছেন তবে ম্যাকের অজগরটিতে এটি ব্যবহার সম্পর্কে মন্তব্য দেখুন যেখানে এটি প্রত্যাশার মতো কাজ করবে বলে মনে হয় না।


5
random_saltএকটি আসল এলোমেলো লবণ দিয়ে প্রতিস্থাপন করুন।
বেলমিন ফার্নান্দেজ

6
আমি এটি ইয়োসেমাইটে কাজ করতে পারি না। এটি এটিকেই ছড়িয়ে দেয়: $6asQOJRqB1i2- এটি সঠিক হতে প্রায় দীর্ঘ বলে মনে হয় না!
স্টিগ ব্রুটাসেট

3
ক্রিপ্ট মডিউলটি আপনার জন্য নুন তৈরি করতে দিন: python -c 'import crypt; print crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512))'
rrauenza

2
গিলিবিসি ডিফল্টরূপে কেবল 5000 টি রাউন্ড ব্যবহার করে যা আজকাল মোটামুটি দুর্বল। আপনি উদাহরণস্বরূপ, "$ চক্রের = ###" যোগ করে চক্রের সংখ্যা গণনা নির্দিষ্ট করতে পারেন: crypt.crypt("test", "$6$rounds=200000$random_salt")। 200000 আমার বর্তমান ল্যাপটপে প্রায় 100 মিমি নেয়।
spparish

2
এটি ব্যবহার করা উচিত নয়, কমপক্ষে কোনও ম্যাকের ক্ষেত্রে। একটি ম্যাকের (10.13.5) এ প্রতিবার একই ভুল ফলাফল দেয়।
ওস্কার পিয়ারসন

37

ডেবিয়ানে আপনি / ইত্যাদি / ছায়ার উপযোগী বিভিন্ন হ্যাশিং অ্যালগরিদম সহ পাসওয়ার্ড তৈরি করতে mkpasswd ব্যবহার করতে পারেন । এটি প্যাকেজের মধ্যে অন্তর্ভুক্ত করা হয়েছে whois (অ্যাপ্লিকেশন অনুসারে)

mkpasswd -m sha-512
mkpasswd -m md5

উপলব্ধ হ্যাশিং অ্যালগরিদমের ধরণের তালিকা পেতে:

mkpasswd -m help 

আছে HTH


3
এটি কি প্যাকেজ সরবরাহ করে? mkpasswdফেডোরার অধীনেও একটি প্রোগ্রাম (প্রত্যাশার অংশ) রয়েছে তবে এটি এই উদ্দেশ্যে অকেজো।
ক্রিশ্চিয়ান সিপিতু

যেমনটি তিনি বলেছিলেন, তিনি যে সংস্করণটির mkpasswdকথা বলছেন তা হ'ল ডেবিয়ান / উবুন্টুর জন্য। mkpasswdফেডোরা উপর (অন্তত 14 পর্যন্ত) অনুপস্থিত -mসুইচ।
slm

3
কৌতূহলজনকভাবে, এটি হুইস প্যাকেজ, দেবিয়ানের উত্তরাধিকার। দেখুন dpkg -S /usr/bin/mkpasswdআমি নিজেই এটি বিশ্বাস করতে পারি না: ডি
আরবিজেজ

একটি পাসওয়ার্ড পরীক্ষা করতে, প্রথম সংখ্যাটি যদি 6 হয় তবে দ্বিতীয় এবং তৃতীয় ডলারের মধ্যবর্তী অংশটি লবণ হিসাবে ব্যবহার করুন। উদাহরণস্বরূপ জন্য root:$6$AbCdE$xyz:...আপনি ব্যবহার করা উচিত: mkpasswd -m sha-512 -S AbCdE। সঠিক পাসওয়ার্ড সহ, আপনার একই হ্যাশ পাওয়া উচিত।
লু

24

সেরা উত্তর: গ্রাব-ক্রিপ্ট

Usage: grub-crypt [OPTION]...
Encrypt a password.

-h, --helpPrint this message and exit
-v, --version           Print the version information and exit
--md5                   Use MD5 to encrypt the password
--sha-256               Use SHA-256 to encrypt the password
**--sha-512             Use SHA-512 to encrypt the password (default)**


4
grub-cryptকমান্ড রয়েছে এমন সিস্টেমে এটি করা সর্বাধিক বোকা এবং সুবিধাজনক উপায়। আপনি যখন এটিকে টানতে পারেন তখন ম্যানুয়ালি লবণের সাথে চারপাশে খেলার কোনও ধারণা নেই। সমস্যাটি হ'ল আরও বেশি সংখ্যক আধুনিক সিস্টেমে GRUB2 রয়েছে এবং সুতরাং এই আদেশটি অন্তর্ভুক্ত করবে না।
rsaw

11

বিভিন্ন ইউনিক্স টাইপ ওএসে SHA-512 পাসওয়ার্ড তৈরি করতে এখানে একটি সংক্ষিপ্ত সি কোড রয়েছে।

ফাইল: passwd-sha512.c

#define _XOPEN_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
  if ( argc < 3 || (int) strlen(argv[2]) > 16 ) {
    printf("usage: %s password salt\n", argv[0]);
    printf("--salt must not larger than 16 characters\n");
    return;
  }

  char salt[21];
  sprintf(salt, "$6$%s$", argv[2]);

  printf("%s\n", crypt((char*) argv[1], (char*) salt));
  return;
}

সংকলন করতে:

/usr/bin/gcc -lcrypt -o passwd-sha512 passwd-sha512.c

ব্যবহার:

passwd-sha512 <password> <salt (16 chars max)>

এই প্রশ্নটি 3 বছরের পুরানো ...
গ্রম্পি

এই মন্তব্যটি পুরানো নয়। আপনি যে সুন্দর অ্যাপটি পেয়ে গেছেন, সেখানে কেবলমাত্র উত্তর দেওয়া হবে যদিও এটি পুরুষ পৃষ্ঠার উদাহরণের মতো দেখায় :)
সাম্পো সরলা

4

SHA-512 হ্যাশ পাসওয়ার্ড তৈরি করতে পার্ল ওয়ান-লাইনারের সমাধান:

perl -le 'print crypt "desiredPassword", "\$6\$customSalt\$"'

RHEL 6 এ কাজ করেছেন


2

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

#Set stronger password hasing
/usr/sbin/authconfig --test | grep sha512 > /dev/null
if [ $? -ne 0 ]; then
echo "Configuring sha512 password hashing"
sudo /usr/sbin/authconfig --enableshadow --passalgo=sha512 --updateall
fi

2

এখানে একটি ওয়ান-লাইনার যা এলোমেলো লবণের সাথে একটি SHA-512 হ্যাশ পাসওয়ার্ড তৈরি করতে শেল কমান্ড ব্যবহার করে:

[মূল @ হোস্ট] mkpasswd -m sha-512 MyPAsSWOrD $ (ওপেনসেল র‌্যান্ড -base64 16 | টিআর-ডি '+ =' | হেড-সি 16)

নোট

  1. আপনার "হোইস" প্যাকেজটি ইনস্টল করতে হতে পারে (দেবিয়ান, এসইএসই, ইত্যাদি), যা "এমকেপাসউইডড" সরবরাহ করে।
  2. "/ ইত্যাদি / ছায়া" রেখার বিন্যাসের বিশদটির জন্য ক্রিপ্ট (3) দেখুন।

দুর্ভাগ্যক্রমে whoisফেডোরা 18 এর প্যাকেজটি কোনও সরবরাহ করে না mkpasswd
ক্রিশ্চিয়ান সিউপিতু

1
আর্চ লিনাক্সে: / usr / bin / mkpasswd এর প্রত্যাশার মালিকানা 5.45-3
নওকার

ফেডোরা ২০-তে একই এবং এটি অন্য কিছু করে।
ক্রিশ্চিয়ান সিউপিতু

2
দুর্ভাগ্যক্রমে প্রস্তাবিত কমান্ডটিতে দুটি সমস্যা রয়েছে: 1) সরবরাহ করা পাসওয়ার্ড এখন আপনার শেলের ইতিহাসে সংরক্ষণ করা হয়েছে এবং 'ইতিহাস' কমান্ড বা এর অনুরূপ যেকোন ব্যক্তির কাছে দৃশ্যমান। 2) আপনার কমান্ড লাইনে এলোমেলো লবণ সরবরাহ করার দরকার নেই - এবং আমি মনে করি যে আপনাকে ফকি ওপেনসেল ট্রিকস ব্যবহার না করে আপনার জন্য এমকেপাসউড করা উচিত। (দ্রষ্টব্য যে এটি কমপক্ষে উবুন্টু কোয়ান্টালের ক্ষেত্রে সত্য m আপনি একাধিকবার 'mkpasswd -m sha-512 foo' চালিয়ে এটি পরীক্ষা করতে পারেন You আপনি লবণের পরিবর্তনগুলি দেখতে পাবেন The লবণের মান ২ য় এবং তৃতীয় $ অক্ষরের মধ্যে মান। )
ওস্কারপিয়ারসন

2

এই উত্তরের সুরক্ষা সম্পর্কিত প্রভাবগুলি সম্পর্কে জানতে নীচের মন্তব্যটি পড়ুন

এখানে রুবি মানসিকতার জন্য একটি ওয়ান-লাইনার:

'password'.crypt('$6$' + rand(36 ** 8).to_s(36))

1
এটি ভুল: রুবির র‌্যান্ড ফাংশনটি সুরক্ষিত নয় - এটি একটি পিআরএনজি ব্যবহার করে, সুতরাং এটি এমন ফলাফল তৈরি করবে যা আপনি যে মুহুর্তটি চালিয়েছেন তার সময় / অবস্থার অনুমানের ভিত্তিতে বিপরীত ইঞ্জিনিয়ারযুক্ত হতে পারে।
ওস্কার পিয়ারসন

1

এই স্ক্রিপ্টটি আমার জন্য উবুন্টু 12.04 এলটিএসে কাজ করেছে: https://gist.github.com/JensRantil/ac691a4854a4f6cb4bd9

#!/bin/bash
read -p "Enter username: " username
read -s -p "Enter password: " mypassword
echo
echo -n $username:$mypassword | chpasswd -S -c SHA512

এটিতে নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে যা অন্যান্য কয়েকটি বিকল্পের অভাব রয়েছে:

  • এটি সুরক্ষিতভাবে তার লবণ তৈরি করে। কারও পক্ষে ম্যানুয়ালি এটি করার উপর নির্ভর করা উচিত নয়। কখনো।
  • এটি শেল ইতিহাসে কিছু সঞ্চয় করে না ।
  • স্পষ্টতার জন্য, এটি প্রিন্ট করে যে কোনও ব্যবহারকারীর পাসওয়ার্ডটি উত্পন্ন হয়েছে যা অনেক ব্যবহারকারীর পাসওয়ার্ড তৈরি করার সময় ভাল হতে পারে।

2
মনে রাখবেন এটি কেবলমাত্র chpasswdআপনার সিস্টেমে থাকলে কাজ করবে ।
ম্যাট স্যান্ডার্স

এফওয়াইআই: চিপাসউড-শেডো-
ইউজেলস -১.১.১.১

0

হ্যাশ অ্যালগোসগুলি ম্যাসেজ হজম উত্পাদন করার জন্য, এগুলি কখনও পাসওয়ার্ডের জন্য উপযুক্ত নয়, যা কোনও ধরণের এইচকেডিএফ ব্যবহার করা উচিত ( http://tools.ietf.org/rfc/rfc5869.txt ) - দেখুন PBKDF2 বা বিসিক্রিপ্ট


ভাল man cryptকথা , তবে আমাকে জানান PBKDF2 সমর্থিত নয়।
হিউজেনস

0
#!/usr/bin/env python

import getpass

from passlib.hash import sha512_crypt

if __name__ == "__main__":
    passwd = getpass.getpass('Password to hash: ')
    hash = sha512_crypt.encrypt(passwd)

    print hash

আপনি চাইলে আমার গিথুব রেপো থেকে এটি ক্লোন করতে পারেন: https://github.com/antoncohen/mksha


0

এটি কোনও একলাইনার নয়, তবে এটি কাউকে সাহায্য করতে পারে:

import crypt, getpass, pwd, string, sys, random
randomsalt = ""
password = getpass.getpass()
choices = string.ascii_uppercase + string.digits + string.ascii_lowercase
for _ in range(0,8):
    randomsalt += random.choice(choices)
print crypt.crypt(password, '$6$%s$' % randomsalt)

randomক্রিপ্টোগ্রাফিকভাবে নিরাপদ নয়, os.urandomব্যবহার করা উচিত। ৫ character টি অক্ষরের দীর্ঘ অভিধান থেকে ৮ টি অক্ষর খুব সামান্য। অজগরটিতে বার বার স্টিংকে কনটেক্সট করা খুব খারাপ রূপ (এটিতে O (n ^ 2) জটিলতা রয়েছে)
হুবার্ট কারিও

0
$ htpasswd -c /tmp/my_hash user1
New password: 
Re-type new password: 
Adding password for user user1
$ cat /tmp/my_hash
user1:$apr1$oj1ypcQz$4.6lFVtKz2nr8acsQ8hD30

স্পষ্টতই, আপনি কেবল ২ য় ক্ষেত্রটি দখল করেছেন, এবং একবার ফাইলটি ছায়ায় যুক্ত করার পরে বা sudo (এখনও সম্ভবত বেশিরভাগ ছায়া) সহ ব্যবহারের জন্য ফাইলটি মুছতে পারবেন।


0

ক্রিপ্টের জন্য ম্যান পৃষ্ঠাটি দেখুন (3) এবং আমি মনে করি যে আপনি খুঁজে পেতে পারেন যে ক্রিপ্টটি সরঞ্জামটি গ্লিবসি এবং sha256 ($ 5) এবং sha512 ($ 6), একাধিক বৃত্তাকার, অনেক বড় লবণের ব্যবহারের জন্য আপডেট করা হয়েছে ।

স্পষ্টতই SHA512 কীভাবে / ইত্যাদি / ছায়া কাজ করে তার সাথে প্রাসঙ্গিক।

এটি বলেছিল যে, এই ওয়েব পৃষ্ঠাটি খুব সহায়ক ছিল - বিশেষত এমকেপিএএসডাব্লুডি, কারণ এটি আমার সমস্যার সমাধান করেছে।

একটি সম্ভাব্য "হারিয়ে যাওয়া" পাসওয়ার্ড দেওয়া, আমি SHA512 হ্যাশ তৈরি করতে এবং প্রার্থী পাসওয়ার্ডের একটি তালিকা নিশ্চিত / অস্বীকার করতে এমকেপিএএসডাব্লুডি এবং লবণ ব্যবহার করতে পারি।

আমি জনকে রিপার ব্যবহার করব - তবে কমপক্ষে আমার হার্ডওয়্যার (রাস্পবেরি পাই) এবং আমার বাজেটে (কিছুই নয়) - জন এটি করতে পারবেন না (এটি রাস্পিবিয়ান ফ্রি সংস্করণে উন্নত ক্রিপট / গ্লিবসি স্টাফ সমর্থন করে বলে মনে হয় না)।

মনে মনে, যেহেতু আমার কাছে লেখার / লেখার / ইত্যাদি / ছায়া পড়ার পর্যাপ্ত অনুমতি রয়েছে, তাই আমি কেবল হ্যাশটি ওভাররাইট করে জীবন দিয়ে যেতে পারি ... এটি একটি শিক্ষামূলক অনুশীলন।


নোটস গ্লিবসি নোট এই ফাংশনটির গ্লিবসি 2 সংস্করণ অতিরিক্ত এনক্রিপ্ট টিওন অ্যালগরিদমকে সমর্থন করে।

   If salt is a  character  string  starting  with  the  characters
   "$id$" followed by a string terminated by "$":

          $id$salt$encrypted

   then instead of using the DES machine, id identifies the encryp‐
   tion method used and this then determines how the  rest  of  the
   password  string is interpreted.  The following values of id are
   supported:

          ID  | Method
          ─────────────────────────────────────────────────────────
          1   | MD5
          2a  | Blowfish (not in mainline glibc; added in some
              | Linux distributions)
          5   | SHA-256 (since glibc 2.7)
          6   | SHA-512 (since glibc 2.7)

   So  $5$salt$encrypted  is  an  SHA-256  encoded   password   and
   $6$salt$encrypted is an SHA-512 encoded one.

0

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


-4

SHA-512 সম্পর্কিত কীভাবে তা আমি নিশ্চিত নই /etc/shadow। এই পাসওয়ার্ডগুলি cryptএড হয়।

তবে আপনি যদি SHA-512 এর সাথে পাসওয়ার্ড হ্যাশ করতে চান তবে আপনি এটি দ্বারা এটি করতে পারেন echo -n the_password | sha512sum। আপনি / ইত্যাদি / ছায়ার জন্য আউটপুট ব্যবহার করতে পারবেন না।


2
echo -n the_passwordসুতরাং আপনি নিউলাইন হ্যাশ করছেন না। </
pedant

পাসওয়ার্ডগুলি shadowবছরের পর বছর থেকে আর ক্রিপ্ট () এড হয় না। আধুনিক সিস্টেমগুলি কমপক্ষে এমডি 5 ব্যবহার করে।
আলেকজান্ডার জানসেন

6
প্রকৃতপক্ষে পাসওয়ার্ডগুলি shadowএখনও crypt()এড হয় তবে বেশ কয়েকটি ভিন্ন অ্যালগরিদম সমর্থন করতে ফাংশনটি আপডেট করা হয়েছে। নির্বিশেষে, এই উত্তরে বর্ণিত পদ্ধতিটি উপযুক্ত হ্যাশ উত্পাদন করে না /etc/shadow। অ্যালগরিদম একক SHA-512 হ্যাশ রাউন্ডের চেয়ে জটিল is
স্ন্যাপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.