আমি উবুন্টু ১১.১০-তে ওপেনএসএসএল ১.০.০ এর অধীনে এই আচরণটি পর্যবেক্ষণ করছি, যেখানে ওপেনএসএসএল ০.৯.৮ কে এবং ০.৯.৮t আউটপুট কেবল হ্যাশ। ওপেনএসএসএল-এর কমান্ড লাইনটি নমনীয় হওয়ার জন্য ডিজাইন করা হয়নি, এটি কমান্ড লাইন থেকে ক্রিপ্টোগ্রাফিক গণনা সম্পাদনের আরও দ্রুত এবং মলিন উপায়।
আপনি যদি ওপেনএসএসএল ব্যবহার করতে চান তবে আউটপুটটি ফিল্টার করুন:
echo -n "foo" | openssl dgst -sha1 | sed 's/^.* //'
লিনাক্সে (জিএনইউ সরঞ্জাম বা ব্যজিবক্স সহ), আপনি ব্যবহার করতে পারেন sha1sum
, যার জন্য ওপেনএসএসএল ইনস্টল করা প্রয়োজন হয় না এবং এর একটি স্থিতিশীল আউটপুট ফর্ম্যাট থাকে। এটি সর্বদা একটি ফাইলের নাম মুদ্রণ করে, তাই এটি বন্ধ করে দিন।
echo -n "foo" | sha1sum | sed 's/ .*//'
ওএসএক্স সহ বিএসডি সিস্টেমে আপনি ব্যবহার করতে পারেন sha1
।
echo -n "foo" | sha1 -q
এই সমস্ত আউটপুট চেকসাম হেক্সাডেসিমাল এর পরে একটি নতুন লাইন। ইউনিক্স সিস্টেমের অধীনে পাঠ্যটিতে সর্বদা রেখার ক্রম থাকে এবং প্রতিটি লাইন একটি নতুনরেখানের অক্ষর দিয়ে শেষ হয়। যদি আপনি কমান্ডের আউটপুট শেল ভেরিয়েবলে সঞ্চয় করেন তবে চূড়ান্ত নিউলাইনটি সরিয়ে ফেলা হবে।
digest=$(echo -n "foo" | openssl dgst -sha1 | sed 's/^.* //')
আপনার যদি এমন কোনও প্রোগ্রামে ইনপুটটি পাইপ করা দরকার যেখানে চেকসামের কোনও চূড়ান্ত নিউলাইন নেই (যা সত্যই বিরল) থাকে তবে নিউলাইনটি সরিয়ে ফেলুন।
echo -n "foo" | openssl dgst -sha1 | sed 's/^.* //' | tr -d '\n' | unusual_program