កម្មវិធីបង្កើត HMAC (HMAC-SHA256 ក្នុង browser)
ទំព័របង្កើត HMAC SHA256 ដោយគ្មាន network សម្រាប់គណនា HMAC និងពិនិត្យ signature យ៉ាងលឿន។
អ្វីៗទាំងអស់ដំណើរការក្នុង browser របស់អ្នក។ សោ និងសារមិនត្រូវបានផ្ញើ ឬរក្សាទុកទេ។
របៀបប្រើ
- បញ្ចូលសោ។ ប្រសិនបើ API spec ផ្តល់ key bytes ជា binary សូមជ្រើស Hex ឬ Base64។
- បញ្ចូលសារ payload ដែលត្រូវ sign។
- ជ្រើស output format ហើយចម្លងលទ្ធផល។
ឧទាហរណ៍ (វ៉ិចទ័រសាកល្បង)
ឧទាហរណ៍ទី 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។