Bir dize MD5 hashını doğrudan terminalde nasıl alırım?

151

MD5 dizesini doğrudan terminalden nasıl alabilirim?

Örneğin, abcdefg dizesinin hashed olmasını istiyorum. Şu anda md5sum komutu sadece bir dosya adını giriş olarak kabul etmektedir. Sadece aşağıdaki satırı girmek istiyorum ve her şey bitti.

md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f

Bunu nasıl başarabilirim?

    
sordu Hamed Momeni 20.07.2011 13:08

7 cevap

197

Bunun gibi bir şey de söyleyebilirsiniz:

~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4  -

Temelde, @enzotib tarafından açıklananla aynı şeyi yapar, ancak belki de biraz daha basittir.

    
verilen cevap jfmessier 20.07.2011 13:47
58

Çok basit, stdin'i kabul ediyor, yani

md5sum <<<"my string"

Kabuğun eklediği son satırdan kaçınmak için:

printf '%s' "my string" | md5sum
    
verilen cevap enzotib 20.07.2011 13:10
21
$ echo -n 123456 | md5sum | awk '{print }'
e10adc3949ba59abbe56e057f20f883e

bir kabuk komut dosyası oluşturabilirsiniz.

Örneğin, komut dosyası adı md5.sh:

#!/bin/bash

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

izin yürütme:

 chmod +x md5.sh

Ardından:

$ md5.sh 123456
e10adc3949ba59abbe56e057f20f883e

Sisteminiz macOS ise. Bu komut dosyasını değiştirmeniz gerekiyor:

$ echo -n 123456 | md5 | awk '{print }' 
e10adc3949ba59abbe56e057f20f883e
    
verilen cevap ty4z2008 09.03.2015 05:54
9

md5sum'un hiçbir argüman olmadan çalıştırılması, terminalden gelen girişi okumasına neden olur. İstediğinizi yazın veya yapıştırın ve işiniz bittiğinde girdiyi sonlandırmak için ctrl-d tuşuna basın.

    
verilen cevap psusi 27.07.2011 17:46
8
openssl md5 filename
openssl sha1 filename

Dize borusu için içerik echo

kullanarak
echo -n 123456 | openssl md5
    
verilen cevap guest 10.12.2015 12:13
3

Hızlı kodlama --help için md5sum komutunu gösterir:

md5sum -

sonra basit giriş için bir bilgi verecektir. Bazı metinleri girdikten sonra Enter ve sonra Ctrl + D kullanarak dosyanın sonunu belirtmek için md5sum 'nin Girdiğiniz ham metin ( Enter dahil, bir CR, IIRC).

Yazmaya ve boru tesisine gerek yok! Ve plaintext şifrenizin kabuk geçmişine kaydedilmesinden kaçının! Woo!

Eğer bu sonlandırma CR'yi istemiyorsanız (genellikle şifre almak istiyorsanız bu durumda), Ctrl + Enter tuşuna basmayın. > D , yerine Ctrl + D yazın.

    
verilen cevap Will 21.08.2013 08:00
2

Komut dosyalarında, bu konuda bilmeniz gereken 2 şey olduğunu öğrendim.

  • echo "$myvariable" veya echo -n "$myvariable" yapmanın önemi yok ancak her zaman dizgiler için doubleqoutes kullanmalı ve her zaman aynı yöntemi kullanmalısınız. eğer bir şey eşleşmezse.
  • çıktıda, örnekte gösterildiği gibi her zaman izleyen bir boşluk ve çizgi görünür:

    $ echo -n Welcome | md5sum
    7803ffcaea43bb81a439fde13b29bc35  -
    

Bundan kurtulmak ve sadece 7803ffcaea43bb81a439fde13b29bc35 kodunda kalmak, yap: echo "$myvariable" | md5sum | cut -d" " -f1

    
verilen cevap Bodo Hugo Barwich 02.08.2014 15:39

Etiketlerdeki diğer soruları oku