ឧបករណ៍បង្កើត HMAC (គណនា HMAC-SHA256 ក្នុងកម្មវិធីរុករក)
ឧបករណ៍គណនា HMAC ដើម្បីបង្កើត HMAC SHA256 នៅទីនេះតែម្តង។ Key និងការបញ្ចូលរបស់អ្នកមិនត្រូវបានផ្ញើចេញ ឬរក្សាទុកឡើយ។
គាំទ្រការបញ្ចូល Text/Hex/Base64 និងការបញ្ចេញ Hex/Base64។ គណនាដោយសុវត្ថិភាពដោយប្រើ Crypto API ស្តង់ដាររបស់កម្មវិធីរុករក។
បញ្ចូល និងបញ្ចេញ
ទំព័រនេះអនុវត្តការគណនាទាំងស្រុងនៅក្នុងកម្មវិធីរុករក ហើយមិនផ្ញើទិន្នន័យចេញឡើយ។
* 'លំដាប់បៃ (byte sequence)' តាមលក្ខណៈបច្ចេកទេស API គឺសំខាន់ណាស់។ ប្រសិនបើ key ជាប៊ីណារី សូមបញ្ចូលវាជា Hex/Base64។
ជម្រើស
លទ្ធផលនឹងផ្លាស់ប្តូរប្រសិនបើកូដចុះបន្ទាត់ខុសគ្នាដោយសារ OS ឬការបិទភ្ជាប់។
ដោយសារហត្ថលេខា API ត្រូវការ 'ការផ្គូផ្គងយ៉ាងច្បាស់លាស់' ការរក្សាទុកដូចដើមត្រូវបានណែនាំជាទូទៅ។
របៀបប្រើ
ជំហានមូលដ្ឋានចំនួន 3 សម្រាប់ការបង្កើតហត្ថលេខា HMAC។
- 1 បញ្ចូល Key (ជ្រើសរើស Hex / Base64 ប្រសិនបើ API ជាប៊ីណារី)
- 2 បញ្ចូលសារ (ខ្សែអក្សរសម្រាប់ចុះហត្ថលេខា / payload)
- 3 ជ្រើសរើសទម្រង់បញ្ចេញ (Hex / Base64) រួចចម្លង
HMAC ត្រូវបានគណនាលើ 'លំដាប់បៃ' មិនមែនលើ 'ខ្សែអក្សរ' ទេ។ ទោះបីជាវាមើលទៅដូចគ្នាក៏ដោយ លទ្ធផលនឹងខុសគ្នាប្រសិនបើការដាក់លេខកូដតួអក្សរ ការចុះបន្ទាត់ ឬចន្លោះលើសខុសគ្នា (សន្មតថាជា UTF-8)។
ឧទាហរណ៍ (សម្រាប់ផ្ទៀងផ្ទាត់)
ចុច 'ផ្ទុកឧទាហរណ៍' ដើម្បីបំពេញប្រអប់បញ្ចូល។
បញ្ហាដែលជួបប្រទះញឹកញាប់
លទ្ធផលនឹងផ្លាស់ប្តូរប្រសិនបើការចាត់ចែងការចុះបន្ទាត់ខុសគ្នា។
ដោយសារហត្ថលេខាត្រូវការការផ្គូផ្គងយ៉ាងច្បាស់លាស់ ការដកចន្លោះចេញអាចបណ្តាលឱ្យមិនត្រូវគ្នា។
Base64URL ជាធម្មតាប្រើ +→-, /→_, និងដក = ចេញ។ សូមពិនិត្យមើលលក្ខណៈបច្ចេកទេស។
ឧទាហរណ៍៖ ការបញ្ចូល 'deadbeef' ជា 'ខ្សែអក្សរ' ប្រៀបនឹងការបញ្ចូលវាជា 'លំដាប់បៃ 0xDE 0xAD...'។
ព័ត៌មានបន្ថែម
ជាយន្តការមួយសម្រាប់បង្កើតហត្ថលេខាពីកូដសម្ងាត់ និងសារ។ ភាគីទីបីមិនអាចបង្កើតលទ្ធផលដូចគ្នាបានទេ បើគ្មាន key ដូចគ្នា។
SHA-256 គឺជា 'hash' ចំណែក HMAC គឺជា 'keyed hash (ហត្ថលេខា)'។
ប្រើសម្រាប់ហត្ថលេខា API, ការផ្ទៀងផ្ទាត់ Webhook, ការរកឃើញការកែប្រែសំណើ (request tampering) ជាដើម។
FAQ
តើ Key ត្រូវបានរក្សាទុកដែរឬទេ?
វាមិនត្រូវបានរក្សាទុកទេ។ ឧបករណ៍នេះគណនានៅក្នុងកម្មវិធីរុករក ហើយមិនផ្ញើ key ឬសារទៅកាន់ម៉ាស៊ីនមេឡើយ។ (※ជាការប្រុងប្រយ័ត្ន សូមចុចកំណត់ឡើងវិញបន្ទាប់ពីបញ្ចូលនៅលើកុំព្យូទ័រដែលប្រើរួមគ្នា)
ប្រើ Base64 ឬ Hex?
ប្រើទាំងពីរ។ អ្នកអាចជ្រើសរើសទម្រង់បញ្ចេញ (Hex / Base64 / Base64URL)។ សូមជ្រើសរើសតាមលក្ខណៈបច្ចេកទេស API។
ការដាក់លេខកូដតួអក្សរ (Encoding)?
សន្មតថាជា UTF-8។ ការបញ្ចូលអត្ថបទត្រូវបានបម្លែងជាបៃជា UTF-8 សម្រាប់ការគណនា។ ប្រើការបញ្ចូល Hex / Base64 សម្រាប់ការចាត់ចែងប៊ីណារី។
ភាពខុសគ្នារវាង HMAC និង SHA-256 hash?
SHA-256 គឺជា 'hash' ចំណែក HMAC គឺជា 'keyed hash (ហត្ថលេខា)'។ លទ្ធផលដូចគ្នាមិនអាចត្រូវបានបង្កើតឡើយ លុះត្រាតែ key ដូចគ្នា។
លទ្ធផលមិនត្រូវគ្នា
មូលហេតុទូទៅគឺ (១) ការចាត់ចែង Key (អត្ថបទ ប្រៀបនឹង ប៊ីណារី), (២) ការចុះបន្ទាត់, (៣) ចន្លោះទទេ, (៤) Base64URL។ សូមពិនិត្យមើលបញ្ហាដែលជួបប្រទះញឹកញាប់ខាងលើតាមលំដាប់។