ডেভেলপাররা হ্যাশ এর ব্যবহার নানা কারনেই করে থাকেন । তবে সাধারনত সাইটএর গুরুত্ব পূর্ন ইনফো যেমন এডমিন নেম পাসওয়ার্ড কিনবা ক্রেডিট কার্ড ইনফো এর মতো গুরুত্বপূর্ন তথ্য কে নিরাপদ রাখার জন্য HASH ব্যবহৃত হয় ।
দুনিয়াতে অনেক রকমের হ্যাশ আছে যেমন : MD5, SHA1, SHA2 ইত্যাদি । এই হ্যাশগুলো সাধারনত ক্র্যাক করা যায় না । তাহলে অনলাইন টুল কিনবা সফটওয়্যার ব্যবহার করে যে আমারা অনেক হ্যাশই ক্র্যাক করি এটা কিভাবে সম্ভব ?
এর উত্তর হলো:
জটিল Cryptographic Hash Algorithms এর হ্যাশ গুলো ক্র্যাক করা অসম্ভব। অনলাইন হ্যাশ ক্র্যাকিং সাইট গুলো হ্যাশকে ক্র্যাক করে না বরং তারা ডাটাবেজ এ সংগ্রহিত হ্যাশকেই প্রদর্শন করে । যেমন আপনি গুগলে সার্চ দিলেন abcd লিখে এখন গুগলের ডাটাবেজ এ যদি abcd পূর্বে সংগ্রহিত করা থাকে তবে আপনাকে সংগ্রহিত ডাটা দেখাতে পারবে তেমনি অনলাইন হ্যাশ ক্র্যাক করার সাইটগুলো প্রথমে hash এবং তাদের plain text গুলো database এ জমা রাখে নিচের মত করে
হ্যাশ--------------------------------হ্যাশ ভ্যালু
xxx-----------------------------------yyy
aaa-----------------------------------bbb
তো যখন কেউ হ্যাশ লিখে search করে তখন প্রোগ্রামটি খুঁজে দেখে হ্যাশ ভ্যালু ডাটাবেজ এ আছে কিনা যদি থাকে তবে এর ভ্যালু দেখানো হয় । যেমন:
যখন কেউ aaa লিখে search করে তখন প্রোগ্রামটি খুঁজে দেখে aaa ডাটাবেজ এ আছে কিনা । যেহেতু আছে তাই bbb results দেখানো হয় ।
যাইহোক আরে কিছু পদ্ধতিতে হ্যাশ এর ভ্যালু বের করা হয় যা নিয়ে পরবর্তীতে টিউটোরিয়াল দেওয়া হবে ।
হ্যাশ চিহ্নিত করন:
দুনিয়াতে অনেক রকমের হ্যাশ আছে তার মধ্যে আজকে কিছু কমন হ্যাশের ফর্ম বা স্ট্যাকচার নিয়ে কথা বলবো ।
MD5 - দুনিয়ার সবচাইতে বেশী ব্যবহৃত হ্যাশ হলো MD5 hash (Message-Digest algorithm)
নিচের শর্তগুলো পূরন হলেই তবে ঐ হ্যাশকে MD5 বলা যাবে :
*. They are always 32 characters in length ( 128 Bits )
*. They are always hexadecimal (Only use characters 0-9 and A-F )
উপরের যেকোন একটি শর্ত না মানলে হ্যাশটি - MD5 বলে গন্য হবে না ।
কোড:
উদাহরন - f5d1278e8109edd94e1e4197e04873b9
SHA1 - এটিও অনেক প্রচলিত একটি হ্যাশ পদ্ধতি ।
নিচের শর্তগুলো পূরন হলেই তবে ঐ হ্যাশকে SHA1 হ্যাশ বলা যাবে:
*. They are always 40 Characters in length ( 160 bits )
*. They are always hexadecimal (Only use characters 0-9 and A-F )
উপরের যেকোন একটি শর্ত না মানলে হ্যাশটি - SHA1 বলে গন্য হবে না ।
কোড:
উদাহরন - ab4d8d2a5f480a137067da17100271cd176607a1
MySQL < 4.1 - এটি অনেক পুরাতন ভার্সনের Mysql এ ব্যবহৃত হয় ।
নিচের শর্তগুলো পূরন হলেই তবে ঐ হ্যাশকে MySQL 4.1 এর হ্যাশ বলা যাবে:
*. They are always 16 Characters in length ( 64 bits )
*. They are always hexadecimal (Only use characters 0-9 and A-F )
উপরের যেকোন একটি শর্ত না মানলে হ্যাশটি - MYSQL < 4.1 বলে গন্য হবে না ।
কোড:
উদাহরন - 606727496645bcba
MYSQL5 - নতুন ভার্সনের MYSQL এ database user passwords সংরক্ষনে ব্যবহৃত হয় ।
নিচের শর্তগুলো পূরন হলেই তবে ঐ হ্যাশকে MYSQL5 হ্যাশ বলা যাবে:
*. They are always 41 characters in length
*. They are always capitalized
*. They always begin with an asterisk
উপরের যেকোন একটি শর্ত না মানলে হ্যাশটি - MYSQL5 বলে গন্য হবে না ।
কোড:
উদাহরন - *C8EB599B8E8EE7BE9F1A5691B7BC9ECCB8DE1C75
MD5(Wordpress) - এটা Wordpress সাইটে ব্যবহৃত হয় ।
নিচের শর্তগুলো পূরন হলেই তবে ঐ হ্যাশকে MD5(Wordpress) বলা যাবে:
*. They always start with $P$
*. They are always variable case alpha numeric ( 0-9 A-Z a-z )
*. The are always 34 characters long
উপরের যেকোন একটি শর্ত না মানলে হ্যাশটি - MD5(Wordpress) বলে গন্য হবে না ।
কোড:
উদাহরন - $P$9QGUsR07ob2qNMbmSCRh3Moi6ehJZR1
MD5(phpBB3) - এটা PHPBB forums এ ব্যবহৃত হয় ।
নিচের শর্তগুলো পূরন হলেই তবে ঐ হ্যাশকে MD5(PhpBB) বলা যাবে:
*. They always start with $H$
*. They are always variable case alpha numeric (0-9 A-Z a-z)
*. The are always 34 characters long
উপরের যেকোন একটি শর্ত না মানলে হ্যাশটি - MD5(PhpBB) বলে গন্য হবে না ।
কোড:
উদাহরন - $H$9xAbu5SruQM5WvBldAnS46kQMEw2EQ0
SALTS
বর্তমানে salts নিয়ে অনেকেই নানারকম ঝামেলাতে পরেন । MD5 বহুল ব্যবহৃত হওয়ায় এটা বর্তমানে ভা্ঙ্গা অনেক সহজ হয়ে গেছে তাই ডেভেলপার রা চালাকি করে এর সাথে কিছু salt যুক্ত করে দেয় যাতে সহজে ভাঙ্গা না যায় ।যেমন, MD5($password.$salt).
এটা Salted MD5 এর ক্ষেত্রে ব্যবহৃত হয় ।
নিচের শর্তগুলো পূরন হলেই তবে ঐ হ্যাশকে SALTED MD5 বলা যাবে:
*. They consist of two blocks connected by a colon, the first is the hash the second is the salt.
*. The first part of the salted hashis hexadecimal , the second is variable case alphanumeric .
*. They first part will always be 32 characters long
*. The second part can be any length.
উপরের যেকোন একটি শর্ত না মানলে হ্যাশটি - SALTED MD5 বলে গন্য হবে না ।
কোড:
উদাহরন - 49adee90123f8c77d9020bba968c34dd:PS2en
নিচের লিংকে হ্যাশের কিছু উদাহরন হ্যাশক্যাট থেকে দেওয়া হলো
http://hashcat.net/wiki/doku.php?id=example_hashes
সবাইকে ধন্যবাদ-
0 comments:
Post a Comment