97
Python MD5 karması, kabuktaki md5sum komutu tarafından oluşturulandan farklı. Niye ya? genellikle hatları (istem çok soldaki başlamaz eğer gerçekten çirkin görünüyor) sizin kabuğunda bir satır aralığı ile biten değil istemiyoruz çünküNeden bir MD5 hashı, Python tarafından oluşturulan kabuktan eko ve md5sum kullanılarak oluşturulandan farklı?
>>> import hashlib
>>> h = hashlib.md5()
>>> h.update("mystringforhash")
>>> print h.hexdigest()
86b6423cb6d211734fc7d81bbc5e11d3 # Result from Python
$ echo mystringforhash | md5sum
686687dd68c5de717b34569dbfb8d3c3 - # Result on the shell
Aslında bu Python ya da higer seviyesini daha kullanmaya insanlara söyle kullanabileceğim büyük örneklerinden biridir Kabuk betikleri yerine daha iyi yapılmış olduğu düşünülen çalışma için kabuk betikleri yerine diller. Karma veri ve kodun doğası ve her komut için farklı bir sözdizimi, kabuk betiklerini görünmez biçimde hata yapan – jsbueno
yapar. Verilen tek şey "bir kabuk" ise, "yankı" ile çalışabilir bir "-n" bayrağına güvenemezsiniz. POSIX, "echo" hakkında aşağıdakileri söyler: "İlk işlenen" -n "ise veya işlenenlerden herhangi biri bir" "karakteri içeriyorsa, sonuçlar uygulama tanımlıdır." (kaynak: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html). Bunun yerine 'printf' kullanın. –