
HMAC कार्यान्वयन उदाहरण और व्याख्या
Flask का उपयोग करके Python में बेसिक HMAC (हैश-आधारित संदेश प्रमाणीकरण कोड) का एक उदाहरण कार्यान्वयन।
हैश-आधारित संदेश प्रमाणीकरण कोड (HMAC) सर्वर और क्लाइंट को एक निजी कुंजी प्रदान करता है जो केवल उस विशिष्ट सर्वर और उस विशिष्ट क्लाइंट को ज्ञात होती है। क्लाइंट सर्वर को प्रति अनुरोध एक अद्वितीय HMAC या हैश बनाता है, जो अनुरोध डेटा को निजी कुंजियों के साथ हैश करके और इसे अनुरोध के भाग के रूप में भेजता है। HMAC को संदेश प्रमाणीकरण कोड (MAC) से अधिक सुरक्षित बनाने वाली बात यह है कि कुंजी और संदेश को अलग-अलग चरणों में हैश किया जाता है।

जब कोई क्लाइंट सर्वर को अनुरोध भेजता है, तो उसमें निम्नलिखित हेडर शामिल होते हैं:
X-Authorization-Content-HMAC: HMAC हैश (पूरा अनुरोध URI, वर्तमान Unix टाइमस्टैम्प (UTC), और HMAC सीक्रेट कुंजी)
X-Authorization-Timestamp: क्लाइंट का वर्तमान Unix टाइमस्टैम्प (UTC)
(request)
GET /example/users?user=test&institutionID=999&signature=7e745d74b69b7f62e8e2 HTTP/1.1
Host: example.com
X-Authorization-Content-HMAC: 1c73495878ccea24af9dd281a4c883c40a3551ba799d30f4ad7d9afb6a60fbd4
X-Authorization-Timestamp: 1711662980
[ क्लाइंट अनुरोध प्रक्रिया ]
जब सर्वर एक वैध अनुरोध का जवाब देता है, तो उसमें निम्नलिखित हेडर शामिल होते हैं:
X-Response-Content-HMAC: HMAC हैश (पूरा प्रतिक्रिया निकाय, वर्तमान Unix टाइमस्टैम्प (UTC), और HMAC सीक्रेट कुंजी)
X-Response-Content-TimeStamp: वर्तमान Unix टाइमस्टैम्प (UTC)
(response)
HTTP/2 200 OK
Date: Fri, 29 Mar 2024 06:50:49 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 52
X-Response-Content-HMAC: 529c33aac3e33bf2a95d534f8b3ac61dee2ed79232d729e571dc669417a1a2ae
X-Response-Content-TimeStamp: 1711663027
Connection: close
{"result": "ok", "users": "test", "sub": 2840345654}
[ प्रतिक्रिया प्रक्रिया ]
Server response HMAC verification successful
--------------
Response timestamp: 2024-03-29T09:25:31
Current time: 2024-03-29T09:25:31
Time difference: 0
यदि आपको यह उपयोगी लगे, तो कृपया आगे के सुधारों का समर्थन करने के लिए "स्टार"🌟 दें।