2011-01-03 15 views

cevap

42

Kullanım yerine md5sum arasında openssl dgst -md5 -binary. İsterseniz, sadece bir programın tüm kullanımlar için kullanılması için 64'ü kodlamak için kullanabilirsiniz.

echo -n foo | openssl dgst -md5 -binary | openssl enc -base64

(openssl md5 yerine openssl dgst -md5 çok çalışır, ama açık olmak daha iyi olduğunu düşünüyorum) Eğer döngü sözdizimi için kullanmak mümkün olmayabilir BusyBox olarak

+0

Teşekkür fazla. İyi çalışıyor. –

0
unhex() 
{ 
    for ((b=0; b<${#1}; b+=2)) 
    do 
     printf "\\x${1:$b:2}"; 
    done 
} 

md5sum2bytes() 
{ 
    while read -r md5sum file; do 
     unhex $md5sum; 
    done 
} 

md5sum inputfile | md5sum2bytes | base64 
0

. base64 geçirmeden önce,

unhex() 
{ 
    b=0; 
    while [ $b -lt ${#1} ]; 
    do 
     printf "\\x${1:$b:2}"; 
     b=$((b += 2)); 
    done 
} 

md5sum2bytes() 
{ 
    while read -r md5sum file; do 
     unhex $md5sum; 
    done 
} 

md5sum inputfile | md5sum2bytes | base64 
3

Ayrıca XXD kullanabilirsiniz (vim ile gelir) onaltılık çözmek için: unhex Aşağıda() yerine bir süre döngü ile uygulanmaktadır

(echo 0:; echo -n foo | md5sum) | xxd -rp -l 16 | base64 
İlgili konular