កម្មវិធីបង្កើត HMAC (HMAC-SHA256 ក្នុង browser)

ទំព័របង្កើត HMAC SHA256 ដោយគ្មាន network សម្រាប់គណនា HMAC និងពិនិត្យ signature យ៉ាងលឿន។

អ្វីៗទាំងអស់ដំណើរការក្នុង browser របស់អ្នក។ សោ និងសារមិនត្រូវបានផ្ញើ ឬរក្សាទុកទេ។

គណនាក្នុងមូលដ្ឋាន គ្មានការរក្សាទុក Hex និង Base64
គ្មានការផ្ញើតាមបណ្តាញ

របៀបប្រើ

  1. បញ្ចូលសោ។ ប្រសិនបើ API spec ផ្តល់ key bytes ជា binary សូមជ្រើស Hex ឬ Base64។
  2. បញ្ចូលសារ payload ដែលត្រូវ sign។
  3. ជ្រើស output format ហើយចម្លងលទ្ធផល។
HMAC ធ្វើការលើ bytes មិនមែនលើអត្ថបទដែលមើលឃើញទេ។ UTF-8, newline និងដកឃ្លាបន្ថែមអាចប្តូរលទ្ធផលបាន។

ឧទាហរណ៍ (វ៉ិចទ័រសាកល្បង)

ឧទាហរណ៍ទី 1 (ពិនិត្យខ្លី)

បញ្ចូល: គន្លឹះ = secret (UTF-8), សារ = message (UTF-8)

HMAC-SHA256 (Hex):
8b5f48702995c1598c573db1e21866a9b825d4a794d169d7060a03605796360b

HMAC-SHA256 (Base64):
i19IcCmVwVmMVz2x4hhmqbgl1KeU0WnXBgoDYFeWNgs=

ឧទាហរណ៍ 2 (ឃ្លាទូទៅ)

បញ្ចូល: គន្លឹះ = key, សារ = The quick brown fox jumps over the lazy dog

Hex:
f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8

Base64:
97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=

ចំណុចងាយខុស

  • ភាពខុសគ្នារវាង LF និង CRLF អាចបង្កើត signature ផ្សេងគ្នា។
  • ការកាត់ whitespace ខាងដើម/ចុង អាចធ្វើឱ្យ signature មិនត្រូវគ្នានឹង API។
  • Base64URL ជាញឹកញាប់មានការបម្លែង + ទៅ -, / ទៅ _, ហើយបាត់ = padding។ ពិនិត្យ API spec របស់អ្នក។
  • បើ key ត្រូវបានចែកចាយជា bytes Hex/Base64 ប៉ុន្តែអ្នកយកវាជាអត្ថបទធម្មតា នោះលទ្ធផលនឹងមិនត្រូវគ្នា។

សំណួរញឹកញាប់

តើសោរបស់ខ្ញុំត្រូវបានរក្សាទុកទេ?

មិនទេ។ ឧបករណ៍នេះគណនាក្នុង browser ហើយមិនផ្ញើ key/message ទៅ server ទេ។

គួរប្រើ Base64 ឬ Hex?

ទាំងពីរគឺពេញនិយម។ អ្នកអាចជ្រើស output ជា Hex / Base64 / Base64URL ឱ្យត្រូវនឹង API spec របស់អ្នក។

តើប្រើ UTF-8 ទេ?

Text input ត្រូវបានបម្លែងជា UTF-8 មុនគណនា HMAC។ សម្រាប់ binary values សូមប្រើ Hex/Base64 input។

HMAC និង SHA-256 hash ខុសគ្នាយ៉ាងដូចម្តេច?

SHA-256 គ្រាន់តែជា hash ទូទៅ។ HMAC បន្ថែមសោសម្ងាត់ដើម្បីបញ្ជាក់សារ។

លទ្ធផលរបស់ខ្ញុំមិនត្រូវគ្នា។ តើគួរពិនិត្យអ្វីខ្លះ?

ពិនិត្យការបកស្រាយ key (អត្ថបទ ឬ bytes), newline, trimming និងច្បាប់ Base64URL។

ព័ត៌មានបន្ថែម

HMAC គឺអ្វី?

HMAC គឺជា keyed-hash message authentication code ដែលប្រើសោសម្ងាត់ និងមុខងារ hash។

ភាពខុសពី SHA-256

SHA-256 តែមួយមិនមានសោសម្ងាត់ទេ។ HMAC-SHA256 ត្រូវការសោចែករំលែក ហើយប្រើសម្រាប់ការចុះហត្ថលេខា។

ករណីប្រើទូទៅ

ការចុះហត្ថលេខាសំណើ API, ការផ្ទៀងផ្ទាត់ webhook, និងការត្រួតពិនិត្យភាពគង់វង្សនៃ token។