টার্মিনালে সরাসরি স্ট্রিংয়ের MD5 হ্যাশ কীভাবে পাবেন?


189

টার্মিনাল থেকে সরাসরি স্ট্রিংয়ের MD5 হ্যাশ কীভাবে পাব ?

উদাহরণস্বরূপ, আমি স্ট্রিংটি abcdefgহ্যাশ করতে চাই । বর্তমানে md5sum কমান্ড কেবল একটি ফাইল নামকে ইনপুট হিসাবে গ্রহণ করে। আমি কেবল নীচের লাইনে প্রবেশ করতে চাই এবং সবকিছু দিয়ে শেষ করা উচিত।

md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f

আমি কীভাবে এটি অর্জন করতে পারি?


উত্তর:


252

আপনি এই জাতীয় কিছু বলতে পারেন:

~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4  -

এটি মূলত @ এনজোটিব বর্ণিত একই জিনিসটি করে তবে এটি সম্ভবত কিছুটা সহজ।


2
আপনি উদাহরণটিও আপডেট করতে চান, কারণ 7803ffca ... যোগ করা নতুন লাইনের সাথে ফলাফল । কমান্ড জন্য সঠিক ফলাফলের উপরে83218ac34c1834c26781fe4bde918ee4 -
Xanthir

19
কেন এখানে ফাঁকা জায়গা এবং একটি ড্যাশ আছে?
কিউন

1
দয়া করে আমি ভুল হলে আমাকে সংশোধন করুন, তবে আমি মনে করি এটি এমডি 5sum কোনও ফাইলের বিষয়বস্তু পড়ার বিপরীতে ডেটা প্রবাহে প্রয়োগ করা হয়েছিল, যার সাথে একটি নাম যুক্ত রয়েছে।
jfmessier

11
লক্ষ করুন যে এটি -nবাধ্যতামূলক। এটি ছাড়া আপনার হ্যাশটি সম্পূর্ণরূপে ভুল হবে কারণ এতে নতুন লাইনের চরিত্র অন্তর্ভুক্ত রয়েছে।
পিথিকোস

1
আমি কীভাবে -শেষ পর্যন্ত উপেক্ষা করতে পারি । @jfmessier
Alper

61

খুব সহজ, এটি স্টিডিনকে গ্রহণ করে, তাই

md5sum <<<"my string"

শেল দ্বারা যুক্ত করা নতুন লাইনের এড়াতে:

printf '%s' "my string" | md5sum

@ এমসিয়ার এবং @ এঞ্জোটিব উভয়কেই একটি ভোট দেওয়া; উভয়ই আমার মূল্যবান "মার্জিত সরলতা" বিভাগে পড়ে। আমি <<<"স্ক্রিপ্টে পাইপটি ব্যবহার করতে প্রস্তুত হই ; echo stringকমান্ডলাইনের জন্য জয়। সাবাশ.
টম

3
printfসঠিকভাবে ব্যবহারের জন্য +1 । আপনি যদি যোগফলটি ছাড়া চান -, রাখতে চান | cut -d ' ' -f 1। ব্যবহারের উদাহরণ:sum=$(printf '%s' 'some string' | md5sum | cut -d ' ' -f 1)
লেকেনস্টেইন

1
এটি অদ্ভুত তবে <<<অপারেটর এবং printfফাংশনটি এমডি 5 হ্যাশের জন্য সম্পূর্ণ আলাদা ফলাফল দিচ্ছে! প্রিন্টফের ফলাফল যদিও সঠিক!
হামেদ মোমেনী

মনে হচ্ছে <<<অপারেটরটি md5sum এ একটি নতুন লাইন প্রেরণ করে!
হামেদ মোমেনি

1
হ্যাঁ, এটি ঘটে, যেমন আমি প্রথম এবং দ্বিতীয় উদাহরণের মধ্যে বলেছিলাম
enzotib

27
$ echo -n 123456 | md5sum | awk '{print $1}'
e10adc3949ba59abbe56e057f20f883e

আপনি একটি শেল স্ক্রিপ্ট তৈরি করতে পারেন।

উদাহরণস্বরূপ, স্ক্রিপ্টটির নাম md5.sh:

#!/bin/bash

echo   -n   $1 | md5sum | awk '{print $1}'

অনুমতি কার্যকর:

 chmod +x md5.sh

তারপর:

$ md5.sh 123456
e10adc3949ba59abbe56e057f20f883e

আপনার সিস্টেমটি যদি ম্যাকোস হয়। আপনাকে এই স্ক্রিপ্টটি পরিবর্তন করতে হবে:

$ echo -n 123456 | md5 | awk '{print $1}' 
e10adc3949ba59abbe56e057f20f883e

1
এটি ঠিক অনেক দীর্ঘ।
গুচো সিএ

1
cut -d ' ' -f 1
অ্যাডকের

md5() { echo -n $1 | md5sum | awk '{print $1}'; }.Bashrc এ আমি একটি ফাংশন তৈরি করেছি এবং তারপরে আমি $ md5 testকমান্ড লাইনে ব্যবহার করতে পারি । উত্তরের জন্য ধন্যবাদ
রুবেন বেঞ্জামিন

সংক্ষিপ্ত awkকমান্ড:'$0=$1'
অ্যালেক্স স্ট্রিজি

@ অ্যালেক্সস্ট্রিজ হ্যাঁ
ty4z2008

10

কোনও যুক্তি ছাড়াই এমডি 5সাম চালনা করলে এটি টার্মিনাল থেকে ইনপুট পড়তে পারে। আপনি যা চান টাইপ করুন বা আটকান এবং আপনার কাজ ctrl-dশেষ হয়ে গেলে ইনপুটটি শেষ করতে টিপুন ।


1
হ্যাঁ, আপনি ঠিক বলেছেন। কিন্তু ctrl+dদুইবার চাপা করা এটা কাজ করার জন্য প্রয়োজন।
হামেদ মোমেনি

@ জেমস, যদি এটি কোনও নতুন লাইন অনুসরণ না করে তবে হ্যাঁ। প্রবেশের পরে যদি আপনি এটি হিট করেন তবে এটি কেবল একবারের প্রয়োজন। এটি যখন কোনও নতুন লাইন অনুসরণ করে না, তখন কেবল লাইনে টাইপ করা সমস্ত অক্ষরকে নতুন লাইনের জন্য অপেক্ষা না করে অবিলম্বে প্রক্রিয়া করতে বাধ্য করে।
psusi

10
openssl md5 filename
openssl sha1 filename

প্রতিধ্বনি পাইপের জন্য প্রতিধ্বনি ব্যবহার করে সামগ্রী

echo -n 123456 | openssl md5

4

আমার দ্রুত অকর্মা --helpজন্য md5sumপ্রমান কমান্ড যে:

md5sum -

তারপরে সাধারণ ইনপুটটির জন্য একটি প্রম্পট দেবে। কিছু পাঠ্য ইনপুট করা এবং তারপরে Enterএবং এরপরে Ctrl+ Dফাইলের md5sumশেষটি চিহ্নিত করতে আপনার প্রবেশ করা কাঁচা পাঠ্যের MD5 কে ছড়িয়ে দেয় (এটি সহ Enter, এটি একটি সিআর, আইআইআরসি)।

টাইপ করতে কম এবং পাইপিং নেই! এবং আপনার সাদামাটা পাসওয়ার্ড শেল ইতিহাসে রেকর্ড করা এড়ানো! পাণিপ্রার্থনা!

কি আপনি চান না যে trailing সি আর (যা সাধারণত ক্ষেত্রে দেখা যায় আপনি একটি পাসওয়ার্ড হ্যাশ চান), আঘাত না Enterসামনে Ctrl+ + D, লিখুন Ctrl+ + Dদুইবার পরিবর্তে।


2

আমার স্ক্রিপ্টগুলিতে আমি দেখতে পেয়েছি যে 2 টি জিনিস রয়েছে যা আপনার এই সমস্যাটি সম্পর্কে জেনে রাখা উচিত।

  • এটা কোন ব্যাপার না যদি আপনি না echo "$myvariable"বা echo -n "$myvariable" কিন্তু আপনি যেকোনো সময় স্ট্রিং জন্য doubleqoutes ব্যবহার এবং সবসময় একই পদ্ধতি ব্যবহার করা উচিত। যদি জিনিস না মেলে।
  • আউটপুটে আপনি সর্বদা একটি পিছনের স্থান এবং ড্যাশ পাবেন উদাহরণ হিসাবে দেখানো হয়েছে:

    $ echo -n Welcome | md5sum
    7803ffcaea43bb81a439fde13b29bc35  -
    

এ থেকে মুক্তি পেতে এবং কেবল কোডের সাথেই থাকতে 7803ffcaea43bb81a439fde13b29bc35, করুন:echo "$myvariable" | md5sum | cut -d" " -f1


-necho -n $myvariable | md5sum | cut -d" " -f1
ট্রেলিং

1

এটি করার জন্য অনেকগুলি উদাহরণ রয়েছে তবে তাদের কয়েকটি সমতুল্য নয় কারণ তাদের মধ্যে কয়েকটি স্পষ্টভাবে বা স্পষ্টতই নিউলাইনটিকে অন্তর্ভুক্ত করে এবং অন্যরা তা করে না।

আমি স্পষ্টভাবে উল্লেখ করতে চাই যে জনপ্রিয় পদ্ধতিগুলির মধ্যে কোনটি নতুন লাইন অন্তর্ভুক্ত করে এবং কোনটি নয়।

ট্রেডিং নিউলাইন (CORRECT) ব্যতীত এমডি 5 হ্যাশ গণনার পাশাপাশি এখানে কয়েকটি উদাহরণ রয়েছে :

পাঠ্য সহ একটি ফাইল ব্যবহার:

$ echo -n "test" > test.txt
$ wc test.txt
0 1 4 test.txt
$ md5sum test.txt
098f6bcd4621d373cade4e832627b4f6  test.txt

দ্রষ্টব্য: -n এর echoঅর্থ: "ট্রেলিং করা নতুন লাইনটি আউটপুট করবেন না"।

ইনলাইন echoসহ ব্যবহার -n:

$ echo -n "test" | md5sum
098f6bcd4621d373cade4e832627b4f6  -

ব্যবহার printf:

$ printf "%s" "test" | md5sum
098f6bcd4621d373cade4e832627b4f6  -

শুধুমাত্র md5sumকমান্ড ব্যবহার করে :

(আসুন লিখতে md5sumচাপুন Enterতারপর স্ট্রিং লিখতে testএবং তারপর টিপুন ডবল সমন্বয় Ctrl+ + d)

$ md5sum
test098f6bcd4621d373cade4e832627b4f6  -

md5sum -কমান্ড ব্যবহার করে :

(আসুন লিখতে md5sum -চাপুন Enterতারপর স্ট্রিং লিখতে testএবং তারপর টিপুন ডবল সমন্বয় Ctrl+ + d)

$ md5sum -
test098f6bcd4621d373cade4e832627b4f6  -

নতুন লাইনের পিছনে এমডি 5 হ্যাশ গণনা করার পাশাপাশি এখানে কয়েকটি উদাহরণ রয়েছে (সুতরাং সঠিক নয়):

পাঠ্য সহ একটি ফাইল ব্যবহার:

$ echo "test" > test_n.txt
$ wc test_n.txt
1 1 5 test_n.txt
$ md5sum test_n.txt
d8e8fca2dc0f896fd7cb4cb0031ba249  test_n.txt

ইনলাইন echoছাড়া ব্যবহার -n:

echo "test" | md5sum
d8e8fca2dc0f896fd7cb4cb0031ba249  -

এখানে স্ট্রিং ব্যবহার :

$ md5sum <<< "test"
d8e8fca2dc0f896fd7cb4cb0031ba249  -

পাঠ্য লেখার পরে কেবল md5sumকমান্ডের সাহায্যে তবে Enterকী ব্যবহার করে :

(আসুন লিখতে md5sumচাপুন Enterতারপর স্ট্রিং লিখতে testএবং তারপর agaien চাপুন Enterএবং একবার সমন্বয় Ctrl+ + d)

$ md5sum
test
d8e8fca2dc0f896fd7cb4cb0031ba249  -

md5sum -কমান্ডটি ব্যবহার করে তবে Enterপাঠ্যটি লেখার পরে কী সহ :

(আসুন লিখতে md5sum -চাপুন Enterতারপর স্ট্রিং লিখতে testএবং তারপর agaien চাপুন Enterএবং একবার সমন্বয় Ctrl+ + d)

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