Decrypt payload

AtlasX Web Service รองรับการถอดรหัส payload ที่เข้ารหัสมาด้วย RSA โดยใช้ DecryptPayload ซึ่งอ่าน private key จาก configuration และถอดรหัส Base64 string กลับเป็นข้อความปกติ

การตั้งค่า

กำหนดค่า RSA key pair ในไฟล์ .env

App__AsymmetricKey__HttpPayloadKey__PrivateKey=-----BEGIN RSA PRIVATE KEY-----...-----END RSA PRIVATE KEY-----
App__AsymmetricKey__HttpPayloadKey__PublicKey=-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----
FieldDescription
PrivateKeyRSA private key ในรูปแบบ PEM ใช้สำหรับถอดรหัส payload
PublicKeyRSA public key ในรูปแบบ PEM ใช้สำหรับเข้ารหัส payload ฝั่ง client

Service Registration

ลงทะเบียน DecryptPayload เข้า DI container ใน Program.cs

builder.Services.AddScoped<DecryptPayload>();

การใช้งาน

Inject DecryptPayload

public class MyService
{
    private readonly DecryptPayload _decryptPayload;

    public MyService(DecryptPayload decryptPayload)
    {
        _decryptPayload = decryptPayload;
    }
}

ถอดรหัส Payload

รับ encrypted payload จาก request แล้วเรียก DecryptString() เพื่อถอดรหัสกลับเป็นข้อความปกติ

[HttpPost("submit")]
public IActionResult Submit([FromBody] EncryptedPayloadWrapper request)
{
    var decrypted = _decryptPayload.DecryptString(request.Payload);
    // ใช้งาน decrypted string ต่อได้เลย
    return Ok(decrypted);
}