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-----| Field | Description |
PrivateKey | RSA private key ในรูปแบบ PEM ใช้สำหรับถอดรหัส payload |
PublicKey | RSA 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);
}