رجیستر کردن دستگاه

برای این موضوع باید API زیر را فراخوانی کنید:

/api/Devices/Register

  • Header
  • Request
    JSON
    Request Body : 
    {
      "Cypher": "string",
      "IV": "string",
      "IntegrationID": 9999
    }
    
  • Response
    • 200
      JSON
      Response : 
      {
        "Cypher": "string",
        "IV": "string",
        "DeviceTitle": "string"
      }
      
    • 400
    • 404

IntehrationID در واقع همان شناسه دستگاه است که از این پس در همهٔ ارتباطات برای شناسایی دستگاه از آن استفاده خواهد شد. این شناسه از ۴ رقم اول سمت چپ سریال به دست می‌آید.

به عنوان مثال IntegrationID برای سریال  عدد 1001 است.

با هر بار تولید سریال جدید، این شناسه ثابت می‌ماند.

Cypher در واقع همان IntegrationID است که به روش زیر رمز شده است:

  1. از الگوریتم AES یا Rijndael برای رمزنگاری این قسمت استفاده شده است.
  2. مد رمزنگاری باید CBC انتخاب شود.
  3. کلید رمزنگاری از کنار هم قرار دادن دو بار یک سریال ساخته شود. برای سریال مثال بالا کلید رمزنگاری به صورت  است.
  4. IV به صورت تصادفی تولید شود و به سرور نیز ارسال شود.
  5. از padding برای حل مشکل سایز داده ورودی استفاده کنید.
  6. در نهایت IV و Cypher تولید شده به صورت Base64String به سرور ارسال شود.

در صورتی که خطایی رخ ندهد، سرور داده‌های زیر را برای شما ارسال خواهد کرد:

  • DeviceTitle: همان عنوانی که در تعریف دستگاه از آن استفاده کردید.
  • Cypher: کلید عمومی مختص کلاینت شما که با الگوریتم AES رمز شده است.
  • IV: یک IV تصادفی که توسط سرور برای رمزنگاری استفاده شده است.

پس از انجام عملیات رجیستر، یک کلید عمومی و یک کلید خصوصی برای دستگاه شما تولید می‌شود. شما کلید عمومی را به صورت رمز شده دریافت می‌کنید. برای بازگشایی و خواندن اطلاعات کلید عمومی باید مراحل زیر را طی نمایید:

  1. از الگوریتم AES یا Rijndael برای بازگشایی رمز این قسمت استفاده شده است.
  2. مد رمزگشایی باید CBC انتخاب شود.
  3. کلید رمزگشایی همانند بالا از کنار هم قرار دادن دو بار همان سریال ساخته شود.
  4. از IV ارسال شده از سمت سرور به عنوان IV الگوریتم AES استفاده شود. فقط دقت داشته باشید که IV ارسالی از سمت سرور به صورت Base64String است.
  5. Cypher ارسالی از سمت سرور به عنوان ورودی تابع رمزنگاری استفاده شود. فقط دقت داشته باشید که Cypher ارسالی از سمت سرور به صورت Base64String است.
  6. پس از رمزگشایی از unpadding برای رسیدن به اطلاعات اصلی استفاده نمایید.
  7. در نهایت یک کلید رمزنگاری عمومی به فرمت XML مشابه زیر دریافت خواهید کرد:
XML
<RSAKeyValue>
<Modulus>yUMZ3QUs5c0dMJp0mAWzZFlzATNmuxol0N+NlOY1TZXW/q8YCrdWzhV6iLANJe6wEblDugUQgYK/Ue30ld8T7Q==</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>

از این کلید رمزنگاری برای فراخوانی باقی API ها استفاده خواهد شد.

تمامی حقوق مالکیت معنوی این وب‌سایت برای شرکت سپیدار سیستم محفوظ است. © Copyright 2026 Sepidar System. All rights reserved.