නූලක MD5 හැෂ් කෙලින්ම පර්යන්තයට ලබා ගන්නේ කෙසේද?


205

ටර්මිනලයේ සිට කෙලින්ම නූලක MD5 හැෂ් ලබා ගන්නේ කෙසේද ?

උදාහරණයක් ලෙස, මට නූල් abcdefgහැෂ් අවශ්‍යයි . දැනට md5sum විධානය මඟින් ගොනු නාමයක් ආදානය ලෙස පමණක් පිළිගනී. මට අවශ්‍ය වන්නේ පහත දැක්වෙන පේළියට ඇතුළු වීමටය.

md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f

මට එය සාක්ෂාත් කරගත හැක්කේ කෙසේද?


3
md5 -s abcdefg
raitisd

Answers:


271

ඔබටත් මේ වගේ දෙයක් කියන්න පුළුවන්:

~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4  -

එය මූලික වශයෙන් ඇන්සොටිබ් විස්තර කළ ආකාරයටම කරයි, නමුත් සමහර විට එය ටිකක් සරල ය.


2
ඔබ ද 7803ffca ... ප්රතිඵලයක් ලෙස මෙය ලෙස, උදාහරණයක් ප්රතිඵලයක් යාවත්කාලීන කිරීමට අවශ්ය සමග එකතු නව පේළියකට යොමු කිරීමේ අක්ෂරය. ඉහත විධානය සඳහා නිවැරදි 83218ac34c1834c26781fe4bde918ee4 -
ප්‍රති result ලය

22
අවසානයේ අවකාශ සහ ඉරක් ඇත්තේ ඇයි?
keune

1
මම වැරදියි නම් කරුණාකර මාව නිවැරදි කරන්න, නමුත් මම සිතන්නේ මෙයට හේතුව MD5sum දත්ත ප්‍රවාහයකට යොදන ලද අතර එය ගොනු අන්තර්ගතයක් කියවීමට වඩා වෙනස් වන අතර එයට නමක් සම්බන්ධ වේ.
jfmessier

15
බව දැනුම් -nඅනිවාර්ය වේ. එය නොමැතිව, ඔබගේ හෑෂ් නව රේඛා අක්ෂරයට ඇතුළත් වන බැවින් එය සම්පූර්ණයෙන්ම වැරදිය.
පිටිකෝස්

2
-අවසානයේදී මම නොසලකා හැරිය හැක්කේ කෙසේද? fjfmessier
ඇල්පර්

66

ඉතා සරලයි, එය stdin පිළිගනී, එබැවින්

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ක්‍රියාකාරිත්වය md5 හෑෂ් සඳහා සම්පූර්ණයෙන්ම වෙනස් ප්‍රති results ල ලබා දෙයි! printf හි ප්‍රති result ලය නිවැරදි වුවද!
හමීඩ් මොමේනි

<<<ක්‍රියාකරු භාවිතා කරමින් md5sum වෙත නව රේඛාවක් යවන බව පෙනේ !
හමීඩ් මොමේනි

1
ඔව්, පළමු හා දෙවන උදාහරණ අතර මා පැවසූ පරිදි එය සිදු වේ
එන්සෝටිබ්

31
$ 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
awk ට විකල්පයක්:cut -d ' ' -f 1
phil294

මම md5() { echo -n $1 | md5sum | awk '{print $1}'; }.bashrc හි ශ්‍රිතයක් නිර්මාණය කළ අතර පසුව මට $ md5 testවිධාන රේඛාවේ භාවිතා කළ හැකිය . පිළිතුරට ස්තූතියි
රූබන් බෙන්ජමින්

කෙටි awkවිධානය:'$0=$1'
ඇලෙක්ස් ස්ට්‍රැගස්

Lex ඇලෙක්ස්ට්‍රැජිස් yep
ty4z2008

11
openssl md5 filename
openssl sha1 filename

නූල් පයිප්ප සඳහා ප්‍රතිරාවය භාවිතා කරමින් අන්තර්ගතය

echo -n 123456 | openssl md5

10

කිසිදු තර්කයක් නොමැතිව md5sum ධාවනය කිරීමෙන් එය පර්යන්තයෙන් ආදානය කියවීමට හේතු වේ. ඔබට අවශ්‍ය ඕනෑම දෙයක් ටයිප් කරන්න හෝ අලවන්න, ඔබ ctrl-dඅවසන් වූ පසු ආදානය අවසන් කිරීමට ඔබන්න .


1
ඔව්, ඔබත් හරි. නමුත් ctrl+dඑය ක්‍රියාත්මක වීමට දෙවරක් එබිය යුතුය.
Hamed Momeni

Ames ජේම්ස්, එය නව රේඛාවක් අනුගමනය නොකරන්නේ නම්, ඔව්. Enter එබීමෙන් පසු ඔබ එයට පහර දුන්නොත්, එය අවශ්‍ය වන්නේ එක් වරක් පමණි. එය නව රේඛාවක් අනුගමනය නොකරන විට, එය පේළියේ ටයිප් කර ඇති සියලුම අක්ෂර නව රේඛාවක් එනතෙක් බලා සිටීම වෙනුවට වහාම ක්‍රියාවට නැංවීමට බල කරයි.
psusi

4

--helpෆෝ සඳහා මගේ ඉක්මන් සිදුරෙන් md5sumපෙන්නුම් කරන්නේ මෙම විධානය:

md5sum -

එවිට සරල ආදානය සඳහා විමසුමක් ලබා දෙනු ඇත. කිසියම් පෙළක් ආදානය කර Enterඉන්පසු Ctrl+ භාවිතා කර පසුව + Dගොනුවේ අවසානය md5sumදැක්වීමට ඔබ ඇතුලත් කළ අමු පා of යේ MD5 පිට කිරීමට හේතු වේ (ඒ ඇතුළුව Enterඑය CR, IIRC ය).

ටයිප් කිරීමට අඩු සහ නල මාර්ගයක් නොමැත! ඔබේ සාමාන්‍ය මුරපදය ෂෙල් ඉතිහාසයේ සටහන් වීම වළක්වා ගන්න! වෝ!

ඔබට පසුපස සී.ආර් අවශ්‍ය නොවන්නේ නම් (සාමාන්‍යයෙන් ඔබට මුරපදයක් හැෂ් කිරීමට අවශ්‍ය නම් එය එසේ වේ), + ට 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


-nවැරදි md5 ට තුඩු දෙන නව රේඛාව ප්‍රතිදානය කිරීමෙන් වළක්වා ගැනීමට මෙහි පරාමිතිය අමතක නොකරන්න :echo -n $myvariable | md5sum | cut -d" " -f1
derFunk

1

මෙය කිරීමට බොහෝ උදාහරණ ඇත, නමුත් ඒවායින් සමහරක් සමාන නොවේ, මන්ද ඒවායින් සමහරක් නව රේඛාව පැහැදිලිව හෝ ව්‍යංගයෙන් ඇතුළත් කර ඇති අතර තවත් සමහරක් එසේ නොවේ.

නව රේඛාව ඇතුළත් වන හා නැති ජනප්‍රිය ක්‍රම අතුරින් පැහැදිලිව සඳහන් කිරීමට මම කැමැත්තෙමි.

නව රේඛාව (නිවැරදි) නොමැතිව md5 හැෂ් ගණනය කිරීම සඳහා උදාහරණ කිහිපයක් මෙන්න :

පෙළ සහිත ගොනුවක් භාවිතා කිරීම:

$ 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 හැෂ් ගණනය කිරීම සඳහා උදාහරණ කිහිපයක් මෙන්න (SO NOT CORRECT):

පෙළ සහිත ගොනුවක් භාවිතා කිරීම:

$ 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  -
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.