SHA512 বনাম ব্লোফিশ এবং ব্রিক্রিপ [বন্ধ]


222

আমি হ্যাশিং অ্যালগরিদমগুলিতে দেখছি, কিন্তু কোনও উত্তর খুঁজে পাইনি।

  • Bcrypt ব্লোফিশ ব্যবহার করে
  • ব্লোফিশ এমডি 5 এর চেয়ে ভাল
  • প্রশ্ন: তবে ব্লোফিশ কি SHA512 এর চেয়ে ভাল?

ধন্যবাদ ..

হালনাগাদ:

আমি স্পষ্ট করতে চাই যে আমি হ্যাশিং এবং এনক্রিপশনের মধ্যে পার্থক্য বুঝতে পারি। আমাকে কীভাবে প্রশ্ন জিজ্ঞাসা করতে প্ররোচিত করেছিল তা হ'ল এই নিবন্ধটি , যেখানে লেখক bcrypt কে "অ্যাডাপটিভ হ্যাশিং" হিসাবে উল্লেখ করেছেন

যেহেতু Bcrypt ব্লোফিশের উপর ভিত্তি করে, তাই আমাকে ভাবতে হয়েছিল যে ব্লোফিশ হ্যাশিং অ্যালগরিদম। যদি উত্তরগুলি নির্দেশ করে দেয় এটির মতো এনক্রিপশন হয়, তবে আমার কাছে মনে হয় এটির এই নিবন্ধটিতে স্থান না পাওয়া উচিত। সবচেয়ে খারাপটি হ'ল তিনি এই সিদ্ধান্তে পৌঁছে গেছেন যে ব্রাইক্রিপট সেরা। আমাকে এখন বিভ্রান্ত করার বিষয়টি হ'ল phpass বর্গ (আমি বিশ্বাস করি পাসওয়ার্ড হ্যাশিংয়ের জন্য ব্যবহৃত) bcrypt (অর্থাত্ ব্লোফিশ, অর্থাৎ এনক্রিপশন) ব্যবহার করে। এই নতুন তথ্যের ভিত্তিতে আপনি লোকেরা আমাকে বলছেন (ব্লো ফিশ এনক্রিপশন), এই শ্রেণিটি ভুল বলে মনে হচ্ছে। আমি কিছু অনুপস্থিত করছি?


2
এটা ভুল নয়; Bcrypt কীভাবে কাজ করে এবং কেন এটি হ্যাশ-ভিত্তিক "একমুখী" অ্যালগরিদম হিসাবে একই উদ্দেশ্যে কাজ করে তা ব্যাখ্যা করার জন্য আমার উত্তরের আপডেটগুলি দেখুন।
এরিকসন

3
bcryptকেবলমাত্র ডিফল্টরূপে একটি উচ্চতর "কাজের ফ্যাক্টর" থাকে। এসএএএকে ধরে নেওয়া হয় না ... যদি না আপনি পাসশাশ 9 ব্যবহার করেন যা কোনও কাজের ফ্যাক্টর সহ ব্যবহার করতে পারে। কেন এই প্রশ্নটি বন্ধ? এটি এখনও খুব গুরুত্বপূর্ণ উত্তর দেওয়া থেকে দূরে।

1
প্রশ্নের লিঙ্কটি নিচে ...............
প্যাসেরিয়ার

উত্তর:


320

এটা বলা কিনা bcrypt অথবা SHA-512 (PBKDF2 মত একটি যথাযথ অ্যালগরিদম প্রেক্ষাপটে) হল চলা উচিত যথেষ্ট । এবং উত্তর হ্যাঁ, উভয়ই অ্যালগরিদম যথেষ্ট সুরক্ষিত যে কোনও লঙ্ঘন একটি বাস্তবায়নের ত্রুটির মাধ্যমে ঘটবে, ক্রিপ্ট্যানালাইসিস নয়।

কোনটি "আরও ভাল" তা জানার জন্য যদি আপনি জেদ করেন তবে SHA-512 এর এনআইএসটি এবং অন্যান্যরা গভীরভাবে পর্যালোচনা করেছেন। এটি ভাল, তবে ত্রুটিগুলি স্বীকৃতি পেয়েছে যে, যদিও বর্তমানে এটি ব্যবহারযোগ্য নয়, তবে নতুন হ্যাশ অ্যালগরিদমের জন্য এসএইচএ -৩ প্রতিযোগিতা তৈরি করেছে। এছাড়াও, মনে রাখবেন যে হ্যাশ অ্যালগরিদমসের অধ্যয়নটি সাইফারের চেয়ে "নতুন" এবং ক্রিপ্টোগ্রাফাররা এখনও সেগুলি শিখছেন।

যদিও সামগ্রিকভাবে Bcrypt ব্লোফিশের মতো ততটা তদন্ত ছিল না, আমি বিশ্বাস করি যে একটি সিফারের উপর ভিত্তি করে সু-বোঝা কাঠামো থাকা কিছুটা অন্তর্নিহিত সুরক্ষা দেয় যা হ্যাশ-ভিত্তিক প্রমাণীকরণের অভাব রয়েছে। এছাড়াও, SHA-2 – ভিত্তিক হ্যাশগুলিকে আক্রমণ করার জন্য একটি সরঞ্জাম হিসাবে সাধারণ জিপিইউগুলি ব্যবহার করা আরও সহজ; এর মেমোরির প্রয়োজনীয়তার কারণে, bcrypt অনুকূল করে তুলতে আরও কিছু বোর্ডের র‌্যামের সাথে FPGA এর মতো আরও বিশেষ হার্ডওয়্যার প্রয়োজন requires


দ্রষ্টব্য: bcrypt একটি আলগোরিদিম যা অভ্যন্তরীণভাবে ব্লোফিশ ব্যবহার করে। এটি নিজেই কোনও এনক্রিপশন অ্যালগরিদম নয়। এটি অপরিবর্তনীয়ভাবে পাসওয়ার্ডকে অস্পষ্ট করার জন্য ব্যবহৃত হয়, যেমন হ্যাশ ফাংশনগুলি "ওয়ান-ওয়ে হ্যাশ" করতে ব্যবহৃত হয়।

ক্রিপ্টোগ্রাফিক হ্যাশ অ্যালগরিদমগুলি বিপরীত করা অসম্ভব হিসাবে ডিজাইন করা হয়েছে। অন্য কথায়, শুধুমাত্র একটি হ্যাশ ফাংশনের আউটপুট প্রদত্ত, একই হ্যাশ আউটপুট তৈরি করবে এমন বার্তা সন্ধান করতে "চিরকাল" লাগবে। আসলে, একই হ্যাশ মান উত্পন্ন করে এমন কোনও দুটি বার্তা সন্ধানের জন্য এটি গণনামূলকভাবে অপ্রয়োজনীয় হওয়া উচিত। একটি সাইফারের বিপরীতে, হ্যাশ ফাংশনগুলি কোনও কী দ্বারা পরামিতি হয় না; একই ইনপুট সর্বদা একই আউটপুট উত্পাদন করে।

যদি কেউ একটি পাসওয়ার্ড সরবরাহ করে যা পাসওয়ার্ড সারণীতে সঞ্চিত মানটিতে হ্যাশ করে তবে সেগুলি সত্যায়িত হয়। বিশেষত, হ্যাশ ফাংশনটির অপরিবর্তনীয়তার কারণে, ধারণা করা হয় যে ব্যবহারকারী কোনও আক্রমণকারী নয় যা হ্যাশটিকে ধরে ফেলে এবং একটি কার্যকরী পাসওয়ার্ড খুঁজতে এটির বিপরীত ঘটায়।

এখন bcrypt বিবেচনা করুন। এটি পাসওয়ার্ড থেকে একটি "কী উত্পন্ন" কী ব্যবহার করে একটি যাদু স্ট্রিং এনক্রিপ্ট করতে ব্লোফিশ ব্যবহার করে। পরে, যখন কোনও ব্যবহারকারী কোনও পাসওয়ার্ড প্রবেশ করে, কীটি আবার উত্পন্ন হয় এবং যদি সেই কীটি এনক্রিপ্ট করে উত্পাদিত সিফারেক্সট সঞ্চিত সিফারেক্সটেক্সের সাথে মিলে যায় তবে ব্যবহারকারী প্রমাণীকৃত হয়। সিফারেক্সটেক্সটি "পাসওয়ার্ড" সারণীতে সংরক্ষণ করা হয়, তবে উত্পন্ন কীটি কখনও সংরক্ষণ করা হয় না।

এখানে ক্রিপ্টোগ্রাফিটি ভাঙ্গতে কোনও আক্রমণকারীকে সিফারেক্সটেক্স থেকে চাবিটি পুনরুদ্ধার করতে হবে। এটিকে "জ্ঞাত-প্লেইনটেক্সট" আক্রমণ বলা হয়, যেহেতু আক্রমণটি এমন ম্যাজিক স্ট্রিংটি জানে যা এনক্রিপ্ট করা হয়েছে তবে কীটি ব্যবহৃত হয়নি। ব্লোফিশটি ব্যাপকভাবে অধ্যয়ন করা হয়েছে, এবং এখনও কোনও আক্রমণ আক্রমণ করা যায় নি যা আক্রমণকারীকে একক পরিচিত ব্লেডেক্সটসের সাহায্যে চাবিটি সন্ধান করতে পারে।

সুতরাং, ঠিক যেমন অপরিবর্তনীয় অ্যালগরিদম ভিত্তিক ক্রিপ্টোগ্রাফিক হজমের মতো, বিসিআরপিট একটি পাসওয়ার্ড, লবণ এবং খরচ ফ্যাক্টর থেকে একটি অপরিবর্তনীয় আউটপুট উত্পাদন করে। ব্লোফিশের প্রতিরোধের মধ্যে এটির শক্তিটি জানা প্লেটেক্সট আক্রমণের প্রতিরোধের অন্তর্ভুক্ত, যা ডাইজেস্ট অ্যালগরিদমের "প্রথম প্রাক-চিত্র আক্রমণ" এর সাথে সমান। যেহেতু এটি পাসওয়ার্ডগুলি সুরক্ষার জন্য একটি হ্যাশ অ্যালগরিদমের জায়গায় ব্যবহার করা যেতে পারে , তাই বিক্রিপ্টকে বিভ্রান্তিকরভাবে একটি "হ্যাশ" অ্যালগরিদম হিসাবে উল্লেখ করা হয়।

ধরে নিই যে নুনের যথাযথ ব্যবহার দ্বারা রেইনবো টেবিলগুলি ব্যর্থ করা হয়েছে, কোনও সত্যিকারের অপরিবর্তনীয় ফাংশন আক্রমণকারীকে বিচার-ও-ত্রুটিতে কমিয়ে দেয়। এবং আক্রমণকারী যে হারকে ট্রায়াল করতে পারে তা সেই অপরিবর্তনীয় "হ্যাশ" অ্যালগরিদমের গতি দ্বারা নির্ধারিত হয়। যদি একটি হ্যাশ ফাংশনটির একক পুনরাবৃত্তি ব্যবহৃত হয়, তবে আক্রমণকারী একটি সরঞ্জামটি ব্যবহার করে প্রতি সেকেন্ডে কয়েক মিলিয়ন ট্রায়াল করতে পারে যেগুলি $ 1000 এর অর্ডারে খরচ হয়, কয়েক মাসের মধ্যে 8 টি অক্ষর পর্যন্ত সমস্ত পাসওয়ার্ড পরীক্ষা করে।

তবে, ডাইজেস্ট আউটপুটটিকে কয়েক হাজার বার "ফিড ব্যাক" করা হলে সেই হার্ডওয়্যারটিতে একই পাসওয়ার্ডগুলির পরীক্ষা করতে কয়েকশ বছর সময় লাগবে। Bcrypt তার মূল ডেরাইভেশন রুটিনের ভিতরে পুনরাবৃত্তি করে একই "কী শক্তিশালীকরণ" প্রভাব অর্জন করে এবং PBKDF2 এর মতো সঠিক হ্যাশ-ভিত্তিক পদ্ধতি একই কাজ করে; এই ক্ষেত্রে, দুটি পদ্ধতি একই।

সুতরাং, Bcrypt সম্পর্কে আমার প্রস্তাবগুলি অনুমানগুলি থেকে ডেকে আনা 1) যে ব্লাফিশের হ্যাশ ফাংশনগুলির SHA-2 পরিবারের মতো একই স্তরের তদন্ত ছিল এবং 2) যে সাইফারগুলির জন্য ক্রিপ্ট্যানালিটিক পদ্ধতিগুলি হ্যাশ ফাংশনগুলির চেয়ে উন্নত।


4
+1 দুর্দান্ত পোস্ট। তবে আমার দুটি প্রশ্ন আছে। ব্লোফিশ এক দশক আগেও দ্বিগুণ দ্বারা প্রতিস্থাপিত হয়েছিল, কোনও সিস্টেমকে কি আধুনিক আদিম ব্যবহার করা উচিত নয়? এছাড়াও হাজার হাজার পুনরাবৃত্তি ওয়েব অ্যাপ্লিকেশনগুলির মতো সিস্টেমে অপব্যয় বলে মনে হচ্ছে যেখানে যে কোনও মুহুর্তে অনেক লোক লগ ইন করে। উদাহরণস্বরূপ, PBKDF2 কেবল তখনই দৃশ্যে প্রয়োগ করা হয় যখন 1 জন একবারে লগইন করে থাকে যেমন কোনও এনক্রিপ্ট করা ফাইল সিস্টেমের জন্য স্ট্রিং 2 কি ফাংশন। আমি প্রবন্ধটি ব্যবহার করি "আক্রমণকারীটির উত্তোলনের পক্ষে এটি যদি খুব ভারী হয় তবে এটি আপনার সার্ভারের পক্ষে খুব ভারী।" আপনি কি মনে করেন?
রোক

17
আমি মনে করি না আরও আধুনিক আদিম ব্যবহারে কোনও সমস্যা আছে। সময়ের সাথে সাথে প্রায়শই দুর্বলতাগুলি আবিষ্কার করা হয় এবং ব্লোফিশ থেকে প্রাপ্ত জ্ঞান ব্যবহার করে টোওফিশের বিকাশ ঘটে। তবে, আমি নির্দিষ্ট দুর্বলতার সম্পর্কে অবগত নই যা ব্লোফিশের ব্যবহারকে অকার্যকর করে দেবে, সুতরাং একটি "যদি-এটি-না-ভাঙা" যুক্তিও তৈরি করা যায়। আক্রমণকারীদের সম্পর্কে আপনার উক্তিটি আমার কাছে ভাল লাগেনি। এমনকি যদি আপনি এমন একটি অ্যালগরিদম চয়ন করেন যা আক্রমণকারীর জন্য কয়েক বিলিয়ন পাসওয়ার্ড পরীক্ষা করার জন্য কয়েক বছরের প্রয়োজন হয় তবে এটি বৈধ অ্যাপ্লিকেশনটিতে একটি নগন্য সময় ব্যয় করবে।
এরিকসন

15
আপনি যদি কোনও হ্যাশ ফাংশনের স্পেসিফিকেশনটি দেখেন তবে আপনি "লবণ" সম্পর্কে কিছুই দেখতে পাবেন না। একমাত্র পরামিতি হজম করার বার্তা। যে কোনও সাইফারের স্পেসিফিকেশন পর্যালোচনা করুন এবং আপনি দেখতে পাবেন যে ফাংশনটি একটি কী দিয়ে পরামিতি করা হয়েছে। "লবণ" যা (অথবা পারে না ) একটি হ্যাশ সাথে ব্যবহার করা কেবল বার্তা অংশ। হ্যাশ অ্যালগরিদমের এটির প্রয়োজন হয় না, এটি বিশেষভাবে চিকিত্সা করে না এবং বাকী বার্তা থেকে আলাদা করতে পারে না। সুতরাং, যদিও এটি সত্য যে বার্তাগুলি প্রায়শই সল্ট দিয়ে পরিবর্তিত হয়, প্রদত্ত বার্তাটি কেবল একটি হ্যাশ তৈরি করে।
এরিকসন

1
@ আন্ড্রে ডি পেনসেটর হিসাবে আমি এমন অ্যাপ্লিকেশনগুলির প্রতিবেদন করি যা অ্যাকাউন্টগুলিকে লক করে এবং i এমন অ্যাপ্লিকেশনগুলি রিপোর্ট করে যা নিষ্ঠুরতার বিরুদ্ধে প্রতিরোধ করে না। আদর্শভাবে একটি আপত্তিজনক আইপি ঠিকানা অবশ্যই একটি ক্যাপচা সমাধান করতে হবে, অতিরিক্ত হিসাবে যদি কোনও ব্যবহারকারীর নাম লক্ষ্যযুক্ত হয় (এমনকি সেই ব্যবহারকারী নামটি উপস্থিত নাও থাকে) তবে সেই অ্যাকাউন্টটি প্রমাণীকরণের আগে একটি ক্যাপচা সমাধান করা উচিত। প্রতি মিনিটে এক্সের রেটলিমিট প্রয়োগ করাও গ্রহণযোগ্য। সম্পর্কিত: সিকিউরিটি.সটাকেক্সচেঞ্জ / প্রশ্ন
25444/…

2
@ রোক: অ্যাপ্লিকেশনগুলিকে রেটলিমিট করা ভাল অনুশীলন হলেও আপনি এই ক্ষেত্রে ধরে নিতে পারেন যে ডেটাবেস ডাউনলোড করা হয়েছে এবং এমন সরঞ্জামে স্থাপন করা হয়েছে যাতে আপনার বর্ণনার হার সীমা নেই।
এলার্ট ভ্যান কোপেরেন

50

আমি একটি ক্যাভ্যাট সহ ইরিকসনের উত্তরের সাথে একমত: পাসওয়ার্ড প্রমাণীকরণের উদ্দেশ্যে, BCrypt SHA-512 এর একক পুনরাবৃত্তির চেয়ে অনেক ভাল - কেবল কারণ এটি অনেক ধীর। এই নির্দিষ্ট গেমটিতে কেন আস্তে আস্তে সুবিধা হ'ল যদি আপনি তা না পান তবে আপনি যে নিবন্ধটি আবার লিঙ্ক করেছেন তা পড়ুন (" গতি ঠিক তেমনটি যা আপনি পাসওয়ার্ড হ্যাশ ফাংশনে চান না তা " তে স্ক্রোল করুন )।

আপনি অবশ্যই পিএইচকে এর এমডি 5 অ্যালগরিদম যেমন কাজ করেন ঠিক তেমনই হাজার বার বার পুনরাবৃত্তি করে SHA-512 এর আশেপাশে একটি সুরক্ষিত পাসওয়ার্ড হ্যাশিং অ্যালগরিদম তৈরি করতে পারেন। গ্লিবিসির ক্রিপ্ট () এর জন্য উলরিচ ড্র্রেপার ঠিক এটি করেছিলেন । এটি করার কোনও বিশেষ কারণ নেই, যদিও আপনার যদি ইতিমধ্যে একটি পরীক্ষিত বিক্রিপ্ট প্রয়োগ বাস্তবায়িত থাকে।


3
আশা করি আমার উত্তরটি এটি পরিষ্কার করে দিয়েছে যে একটি একক হ্যাশ পুনরাবৃত্তি যথেষ্ট নয় (দুঃখের বিষয়, এমনকি জ্ঞানের এই প্রাথমিক স্তরটিও ধরে নেওয়া যায় না)। "যদি একটি হ্যাশ ফাংশনটির একক পুনরাবৃত্তি ব্যবহৃত হয়, তবে আক্রমণকারী একটি সরঞ্জামটি ব্যবহার করে প্রতি সেকেন্ডে কয়েক মিলিয়ন ট্রায়াল করতে পারে যা কয়েক মাসের মধ্যে 8 টি অক্ষর পর্যন্ত লম্বা সমস্ত পাসওয়ার্ড পরীক্ষা করে $ 1000 এর অর্ডারে খরচ হয়। তবে, ডাইজেস্ট আউটপুট হাজারবার বার 'খাওয়ানো' হয়েছে, সেই হার্ডওয়্যারটিতে একই পাসওয়ার্ডের পরীক্ষা করতে কয়েকশ বছর সময় লাগবে। ব্রাইপেট পুনরাবৃত্তি করে একই 'কী শক্তিশালীকরণ' প্রভাব অর্জন করে ... "
এরিকসন

@ এরিকসন: হ্যাঁ, যদিও আমি মনে করি আপনি সেখানে লিডটি সমাধিস্থ করেছেন। আমি যে বিষয়টিটি তৈরির চেষ্টা করছিলাম সেটি হ'ল বিক্রিপ্ট এবং এসএএএ -512 এর সরাসরি তুলনা সত্যিই প্রাসঙ্গিক নয়, কারণ একটি হ'ল একটি মূল ডেরাইভেশন ফাংশন এবং অন্যটি হ'ল একটি ক্রিপ্টোগ্রাফিক আদিম, নিজেই অনুপযুক্ত।
ক্যাফে


1
হাজার হাজার রাউন্ড এসএএ -512 ব্যবহার করা শোনা যায় না এবং বিভিন্ন cryptবাস্তবায়নে এর অন্তর্ভুক্তি দেওয়া হয় (পিএইচপি সহ যা আমি ব্যবহার করি), যখন আমি আসল প্রশ্নটি পড়েছিলাম তখনও আমি ধরে নিয়েছিলাম যে ওপি শ্যা -512 সম্পর্কে জিজ্ঞাসা করার সময় এর অর্থ কী - যে তিনি প্রকৃতপক্ষে SHA-512 বনাম bcrypt এর কয়েক হাজার রাউন্ড উল্লেখ করছেন যা নিজেই কয়েক হাজার বা হাজার হাজার পুনরাবৃত্তি ব্যবহার করে।
থোমাসরুতার

33

ব্লোফিশ কোনও হ্যাশিং অ্যালগরিদম নয়। এটি একটি এনক্রিপশন অ্যালগরিদম। এর অর্থ হ'ল আপনি ব্লোফিশ ব্যবহার করে কোনও কিছু এনক্রিপ্ট করতে পারেন এবং তারপরে পরে আপনি এটি সরল পাঠ্যে আবার ডিক্রিপ্ট করতে পারবেন।

SHA512 হ্যাশিং অ্যালগরিদম। এর অর্থ হ'ল (তত্ত্ব অনুসারে) একবার ইনপুট হ্যাশ করলে আপনি আবার মূল ইনপুটটি পেতে পারবেন না।

এগুলি 2 টি ভিন্ন জিনিস, বিভিন্ন কাজের জন্য ব্যবহার করার জন্য ডিজাইন করা। "SHA512 এর চেয়ে ব্লোফিশ ভাল?" এর কোনও 'সঠিক' উত্তর নেই ? আপনি পাশাপাশি জিজ্ঞাসা করতে পারেন "কাঙ্গারুর চেয়ে আপেল কি ভাল?"

আপনি যদি এই বিষয়টিতে আরও কিছু পড়তে চান তবে এখানে কয়েকটি লিঙ্ক রয়েছে:


18
আমি মনে করি যে প্রশ্নটি bcryptটিকে পাসওয়ার্ডগুলির অপরিবর্তনীয় সুরক্ষা হিসাবে ব্যবহার করার বিষয়ে, যতটা হ্যাশিং সেই উদ্দেশ্যে ব্যবহৃত হয়।
এরিকসন

3
@ এরিকসন পাঠ্যটি "প্রশ্ন: তবে ব্লোফিশ SHA512 এর চেয়ে ভাল?" আমার কাছে বেশ পরিষ্কার মনে হয়েছে এবং দেখায় যে ওপি 2 টি অ্যালগরিদমের মধ্যে পার্থক্য বুঝতে পারে না
গ্লেন

1
ওপি এখানে। আসলে, গ্লেনের এ্নওয়ারের ভিত্তিতে যে ব্লোফিশ একটি এনক্রিপশন অ্যালগরিদম (যা আমি বুঝতে পারি হ্যাশিংয়ের চেয়ে আলাদা) আমি এখন বুঝতে পারি যে আমার প্রশ্ন হ্যাঁ বিভ্রান্ত হয়েছিল। তবে এখন বিভ্রান্তকর বিষয়টি হ'ল phpass বর্গ (আমি বিশ্বাস করি পাসওয়ার্ড হ্যাশিংয়ের জন্য ব্যবহৃত) bcrypt (অর্থাত্ ব্লোফিশ, অর্থাৎ এনক্রিপশন) ব্যবহার করে। ব্লো ফিশ যদি এনক্রিপশন হয় তবে কীভাবে phpass হ্যাশ পাসওয়ার্ডগুলিতে এটি ব্যবহার করবে, তা আমার কাছে একটি ত্রুটির মতো বলে মনে হচ্ছে, না? আমি কিছু অনুপস্থিত করছি?
ক্রিস

2
তবে প্রশ্নটি জিজ্ঞাসা করে যে কোন অ্যাপল এবং ক্যাঙ্গারু একটি নির্দিষ্ট কাজের জন্য আরও উপযুক্ত। ব্লা ফিশ হ্যাশ হওয়ার সময় লাগার কারণে শা এর চেয়ে ভাল হ্যাশিং ফাংশন। আমি দেখেছি বেশিরভাগ বাস্তবায়ন খুব দ্রুত। আপনি পাসওয়ার্ড হ্যাশিংয়ের জন্য একটি ধীর অ্যালগরিদম চান।
জন নিকোলাস

এই উত্তরটি সঠিক যে ব্লোফিশ একটি এনক্রিপশন অ্যালগরিদম, তবে এই প্রসঙ্গে (যেমন, যখন ব্যবহৃত হয় bcrypt) এটি উত্সের স্ট্রিং থেকে একটি কী অর্জন করে এবং যাদু সংখ্যাকে এনক্রিপ্ট করার জন্য এটি হ্যাশিং অ্যালগরিদম হিসাবে ব্যবহৃত হয়। এটি এটিকে অপরিবর্তনীয় করে তোলে, মূলত একটি হ্যাশিং ফাংশন। আপনি সরল পাঠ এবং এনক্রিপ্ট করা ডেটা জানলেও একটি সাইফার থেকে কীটি গণনা করতে পারবেন না।
থোমাসরুটটার

4

ব্লোফিশ এমডি 5 বা SHA512 এর চেয়ে ভাল নয়, কারণ তারা বিভিন্ন উদ্দেশ্যে পরিবেশন করে। MD5 এবং SHA512 হ্যাশিং অ্যালগরিদমগুলি রয়েছে, ব্লোফিশ একটি এনক্রিপশন অ্যালগরিদম। দুটি সম্পূর্ণ ভিন্ন ক্রিপ্টোগ্রাফিক ফাংশন।


2

আমি Ulrich Drepper এর SHA-256 / SHA-512 ভিত্তিক ক্রিপ্ট প্রয়োগ বাস্তবায়নের পরামর্শ দেব।

আমরা জাভাতে এই অ্যালগরিদমগুলি পোর্ট করেছি এবং আপনি এগুলির একটি নিখরচায় লাইসেন্স সংস্করণ ftp://ftp.arlut.utexas.edu/java_hashes/ এ পাবেন

নোট করুন যে বেশিরভাগ আধুনিক (এল) ইউনিটগুলি তাদের / ইত্যাদি / ছায়া ফাইলগুলিতে ড্রেপারের অ্যালগোরিদমকে সমর্থন করে।


PWDTK sourceforge.net/projects/pwdtknet HMAC-SHA512 তবে ওরফে কী Stretching এখানে অন্যদের সম্পর্কে কথা বলা হয়েছে "মন্থরতা" তৈরি তাই ধরে অনেক পুনরাবৃত্তিও করে ব্যবহার করে। বিসিক্রিপেট যেমন উল্লেখ করা হয়েছে একক SHA-512 এর চেয়ে ভাল, তবে আপনি যদি PBKDF2 এর মতো কোনও কিছুতে SHA-512 ব্যবহার করেন তবে আপনি ভাল সুরক্ষিত (যতক্ষণ আপনি একটি বড় ক্রিপ্টো-এলোমেলো লবণ ব্যবহার করছেন এবং সময়কে বাধ্য করার জন্য পর্যাপ্ত পুনরাবৃত্তি রয়েছে) একটি রংধনু টেবিল তৈরি করুন) আমি সবেমাত্র প্রকাশিত এপিআইটি আমার দ্বারা নির্মিত এবং আপনি যা চান তা করে দেবে
ET

2

আমি সবেমাত্র এটি জুড়ে এসেছি:

http://codahale.com/how-to-safely-store-a-password/

এই নিবন্ধ লেখক ভুল হতে পারে?


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