ম্যাকট্রিপলডিস অ্যালগরিদম আউটপুট কেন পাওয়ারশেলের স্থিতিশীল নয়?


14

আমি পাওয়ারশেলে বিভিন্ন আলাদা অ্যালগরিদম ব্যবহার করে ফাইল হ্যাশগুলি যাচাই করছি। আমি যখন ম্যাকট্রিপলডিস ব্যবহার করি তখন আমি সর্বদা বিভিন্ন হ্যাশ পাই। অন্যান্য সমস্ত যেমন SHA256 বা MD5 সর্বদা নির্ভরযোগ্য উত্তর দেয়। আপনি নিজের কম্পিউটারে সমস্যাটি প্রতিলিপি করতে সক্ষম হতে পারেন:

"this is a test" | out-file test.txt
get-filehash test.txt -algorithm sha256
get-filehash test.txt -algorithm sha256
get-filehash test.txt -algorithm mactripledes
get-filehash test.txt -algorithm mactripledes

আমি প্রথম দুটি হ্যাশের জন্য একই হ্যাশ মান পাই তবে দ্বিতীয় দুটি হ্যাশের জন্য পৃথক মান values ম্যাকTripleDes অন্যভাবে ব্যবহার করার কথা?

Algorithm       Hash                                                                   Path                                                                                                                      
---------       ----                                                                   ----                                                                                                                      
SHA256          3F8CB2CDF03347329CAB0C80A6CE3B01EF3B17AF02E0F6E101FA67CE63729F51       C:\temp\test.txt                                                                                                          
SHA256          3F8CB2CDF03347329CAB0C80A6CE3B01EF3B17AF02E0F6E101FA67CE63729F51       C:\temp\test.txt                                                                                                          
MACTRIPLEDES    904D74A529C7A739                                                       C:\temp\test.txt                                                                                                          
MACTRIPLEDES    AF720778A2C878A2                                                       C:\temp\test.txt   

3
MACTripleDES একটি হল অস্থির হ্যাশ অ্যালগরিদম। Get-FileHashCmdlet একটি কী পরামিতি সমর্থন করার জন্য মনে হয় না।
jscott

এটি বাগের মতো শোনাচ্ছে। সুতরাং এই মন্তব্যটি সেরা উত্তর বলে মনে হচ্ছে। তবে কীভাবে এটি চিহ্নিত করা যায় তা আমি দেখছি না।
ব্যবহারকারী6722022

উত্তর:


18

ম্যাক্রিপ্লেডিসগুলি সেমিডিলেট দ্বারা প্রদত্ত অন্যান্য অ্যালগরিদমের চেয়ে আলাদা Get-FileHash। আমি নিশ্চিত নই যে কেন এটি কেন্দ্রীভূত করে অন্তর্ভুক্ত করা হয়েছিল, সত্যি কথা বলতে। এটি অন্যের সাথে ফিট করে না, আইএমও।

SHA1, SHA256, MD5, RIPEMD, ইত্যাদি, সেগুলি হ'ল নিয়মিত হ্যাশ ফাংশন। তারা যথেচ্ছ দৈর্ঘ্যের কিছু ডেটা নেয় এবং স্থির দৈর্ঘ্যের একটি ডাইজেস্ট তৈরি করে যা সেই ডেটা উপস্থাপন করে। ম্যাক্রিট্রিপ্লেসগুলি যদিও আলাদা তবে এটি কেবল একটি হ্যাশ অ্যালগরিদম নয়। এটিতে ট্রিপলডিএস রয়েছে এবং 3 ডিইএস হ্যাশিং অ্যালগরিদম নয়, একটি এনক্রিপশন অ্যালগরিদম। হ্যাশ ফাংশন এবং এনক্রিপশন ফাংশনগুলির মধ্যে সবচেয়ে বড় পার্থক্য হ'ল এনক্রিপশনটি কী দিয়ে বিপরীত করা যায়। হ্যাশগুলি একমুখী ফাংশন।

এবং ম্যাক মানে বার্তা প্রমাণীকরণ কোড। এটি এমন একটি কোড যা কোনও বার্তা প্রমাণীকরণের জন্য ব্যবহৃত হয়। এটি পরীক্ষা করা হয়নি যে তা পরীক্ষা করে দেখুন। ম্যাকগুলি একটি বার্তা থেকে পরের বারের জন্য সংক্ষিপ্ত বা অনন্য হতে ডিজাইন করা হয়েছে।

পরীক্ষা করে দেখুন কন্সট্রাকটর :

 public MACTripleDES() {
        KeyValue = new byte[24]; 
        Utils.StaticRandomNumberGenerator.GetBytes(KeyValue);

        // Create a TripleDES encryptor 
        des = TripleDES.Create();
        HashSizeValue = des.BlockSize; 

        m_bytesPerBlock = des.BlockSize/m_bitsPerByte;
        // By definition, MAC-CBC-3DES takes an IV=0.  C# zero-inits arrays,
        // so all we have to do here is define it. 
        des.IV = new byte[m_bytesPerBlock];
        des.Padding = PaddingMode.Zeros; 
        ...

স্ট্যাটিকর্যান্ডম নাম্বার জেনারেটর এলোমেলো সংখ্যা উত্পন্ন করে ... র্যান্ডম সংখ্যার অর্থ ফলাফল প্রতিটি রান আলাদা হতে চলেছে।


হ্যাঁ, এটি এখানে যথেষ্ট অকেজো। যথাযথ ব্যবহারের ক্ষেত্রে, আপনি হয় কনস্ট্রাক্টরে একটি পরিচিত কীটি পাস করতে পারবেন বা KeyedHashAlgorithmঅবজেক্ট থেকে এলোমেলো কীটি উদ্ধার করতে পারবেন । তবে এটি দিয়ে কোনও উপায় নেই Get-FileHash...
বব

1
যদি Get-FileHashআপনাকে কীটি ব্যবহারের জন্য নির্দিষ্ট করতে না দেয় এবং তার পরিবর্তে একটি এলোমেলো কী উত্পন্ন করে যা এটি কখনও ব্যবহারকারীর সামনে প্রকাশ করে না, এটি আসলে কোনও বাগ হিসাবে দেখা যাবে না (প্রশ্নের মূল শিরোনাম অনুযায়ী) আপনি আসলে ব্যবহার করতে পারবেন না এটা কিছু জন্য। (আমি বুঝতে পারছি না যে আপনি ম্যাক চাইলে আপনি কেন প্রথমে MACripleDES বেছে নেবেন))
হ্যাকান লিন্ডকভিস্ট

@ হাকানলিন্ডকভিস্ট আমি আপনার বক্তব্যটি দেখতে পাচ্ছি তবে এটি আপনার বাগের সংজ্ঞা নির্ভর করে depends কোডটি এটি করার উদ্দেশ্যে যা করা হয়েছিল তা যদি করে , এমনকি যদি এটি সম্পূর্ণরূপে অযথা কিছু করে তবে তা আমার বইটিতে এখনও কোনও বাগ নেই। এটি একটি নকশা পরিবর্তনের অনুরোধ, যেমন "দয়া করে সেমিডলেটটি পরিবর্তন করুন যাতে এটি আসলে কার্যকর কিছু করে does" :)
রায়ান রেস

@ রায়ানআরআইস তবুও, এই ধারণা করা কি সত্যই যুক্তিযুক্ত? কোড নিজেই এবং এর আচরণ ছাড়াও এমন কিছু আছে যা এই ধারণাকে সমর্থন করে যে ম্যাক্রিট্রিপল্ডস অ্যালগরিদম বিকল্পটি কোনও একক Get-FileHashআকারে সংশ্লেষিত আরএনজি হওয়া উচিত?
হকান লিন্ডকভিস্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.