A sha256sum` দিয়ে SHA256 চেকসাম যাচাই করা কেন ডেবিয়ানে ব্যর্থ হয় এবং উবুন্টুতে কাজ করে?


34

উবুন্টু 14.04-এ, আমার প্রত্যাশার মতো কাজ sha256sumথেকে coreutils:

echo 879dd0d7637876be4796f7e6f194a111d21088be85cfe717fc97e2e7f05e79d2 /tmp/myfile | sha256sum -c
/tmp/myfile: OK

তবে, দেবিয়ান হুইজির ঠিক একই ফাইলের সাথে একই একই কমান্ডটি ব্যর্থ হয়:

sha256sum: standard input: no properly formatted SHA256 checksum lines found

আমি এটা বুঝতে পারি না। আমি কীভাবে দেবিয়ানের শেল স্ক্রিপ্টে চেকসামকে নির্ভরযোগ্যভাবে যাচাই করতে পারি?


উবুন্টু 14.04 এ:

⟫ sha256sum --version
sha256sum (GNU coreutils) 8.21

হুইজি অন:

$ sha256sum --version
sha256sum (GNU coreutils) 8.13

উভয় ওএসের ম্যানপেজগুলি বলে:

SYNOPSIS
       sha256sum [OPTION]... [FILE]...

DESCRIPTION
       Print or check SHA256 (256-bit) checksums.  With no FILE,
       or when FILE is -, read standard input.

[...]

       -c, --check
              read SHA256 sums from the FILEs and check them

উত্তর:


45

এটি স্পেসিংয়ের বিষয়ে যত্নশীল। আপনি যদি চালান:

sha256sum /dev/null

তুমি পাও

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  /dev/null

(দুটি স্পেস) আপনি যখন এটির echoমতো ব্যবহার করেন , তখন শব্দের মধ্যে একটি মাত্র স্থান থাকে।

সংস্করণ 8.13 এর আউটপুটটি সঠিক আকারে চায় you আপনি যদি ব্যবহার করেন:

echo "$SUM  $FILE" | sha256sum -c

(আবার, দুটি স্পেস) এটি কাজ করা উচিত। আরও নতুন সংস্করণগুলি সেখানে কতগুলি স্পেস রয়েছে সে বিষয়ে চিন্তা করে না, তাই এটি তাদের সাথেও কাজ করবে।


18
যুক্ত ট্রিভিয়া: দ্বিতীয় স্থানের অক্ষরটির আসলে একটি অর্থ রয়েছে। এটি বোঝায় যে চেকসামটি পাঠ্য মোডে গণনা করা হয়েছে । বিপরীতে, *ফাইলের সামনের একটি অংশ বাইনারি মোডকে নির্দেশ করে । (বাইনারি মোড) এর sha256sum -t /dev/nullসাথে sha256sum -b /dev/null( পাঠ্য মোড, ডিফল্ট) আউটপুট তুলনা করুন । এটি ইউনিক্স / লিনাক্সে দৃশ্যতভাবে কোনও পার্থক্য করে না, তবে এটি উইন্ডোতে পারে
দুবু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.