เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
ข้อมูลธุรกิจที่เป็นส่วนตัวบางอย่าง เช่น เบอร์โทรศัพท์ลูกค้า, ที่อยู่อีเมล, หมายเลขบัตรต่างๆ สามารถเข้ารหัสได้ครับ/ค่ะ หลังจากเข้ารหัสแล้ว ข้อมูลจะถูกจัดเก็บในฐานข้อมูลในรูปแบบของข้อความที่เข้ารหัส (ciphertext)

ปลั๊กอินจะสร้างคีย์แอปพลิเคชัน (application key) โดยอัตโนมัติ ซึ่งจะถูกจัดเก็บไว้ในไดเรกทอรี /storage/apps/main/encryption-field-keys ครับ/ค่ะ
ไฟล์คีย์แอปพลิเคชันจะมีชื่อเป็น ID ของคีย์ และมีนามสกุลไฟล์เป็น .key กรุณาอย่าเปลี่ยนชื่อไฟล์โดยไม่จำเป็นครับ/ค่ะ
โปรดเก็บไฟล์คีย์แอปพลิเคชันไว้ให้ปลอดภัย หากไฟล์คีย์แอปพลิเคชันสูญหาย ข้อมูลที่เข้ารหัสจะไม่สามารถถอดรหัสได้ครับ/ค่ะ
หากเป็นแอปพลิเคชันย่อยที่เปิดใช้งานปลั๊กอินนี้ ไดเรกทอรีเริ่มต้นสำหรับการจัดเก็บคีย์คือ /storage/apps/${ชื่อแอปพลิเคชันย่อย}/encryption-field-keys ครับ/ค่ะ
ใช้วิธีการเข้ารหัสแบบ Envelope Encryption ครับ/ค่ะ

คีย์แอปพลิเคชันขนาด 32 บิตโดยอัตโนมัติ และบันทึกในรูปแบบ Base64 ไปยังไดเรกทอรีจัดเก็บเริ่มต้นครับ/ค่ะคีย์ฟิลด์ (field key) แบบสุ่มขนาด 32 บิตสำหรับฟิลด์นั้น จากนั้นจะใช้คีย์แอปพลิเคชันและเวกเตอร์การเข้ารหัสฟิลด์ (field encryption vector) ขนาด 16 บิตที่สร้างขึ้นแบบสุ่ม เพื่อเข้ารหัสคีย์ฟิลด์นั้น (ด้วยอัลกอริทึมการเข้ารหัส AES) แล้วบันทึกไว้ในฟิลด์ options ของตาราง fields ครับ/ค่ะคีย์ฟิลด์ที่เข้ารหัสและเวกเตอร์การเข้ารหัสฟิลด์จากฟิลด์ options ของตาราง fields ก่อนครับ/ค่ะคีย์แอปพลิเคชันและเวกเตอร์การเข้ารหัสฟิลด์เพื่อถอดรหัสคีย์ฟิลด์ที่ถูกเข้ารหัสไว้ จากนั้นใช้คีย์ฟิลด์และเวกเตอร์การเข้ารหัสข้อมูล (data encryption vector) ขนาด 16 บิตที่สร้างขึ้นแบบสุ่ม เพื่อเข้ารหัสข้อมูล (ด้วยอัลกอริทึมการเข้ารหัส AES) ครับ/ค่ะคีย์ฟิลด์ที่ถอดรหัสแล้วลงนามข้อมูล (ด้วยอัลกอริทึมแฮช HMAC-SHA256) แล้วแปลงเป็นสตริงด้วยการเข้ารหัส Base64 (โดยลายเซ็นข้อมูล (data signature) ที่สร้างขึ้นนี้จะใช้สำหรับการค้นหาข้อมูลในภายหลัง) ครับ/ค่ะเวกเตอร์การเข้ารหัสข้อมูลขนาด 16 บิตและข้อความที่เข้ารหัส (ciphertext) มาต่อกันแบบไบนารี แล้วแปลงเป็นสตริงด้วยการเข้ารหัส Base64 ครับ/ค่ะลายเซ็นข้อมูลที่เข้ารหัส Base64 และสตริงข้อความที่เข้ารหัสที่ต่อกันแล้ว มาต่อกันอีกครั้งโดยคั่นด้วยเครื่องหมาย . ครับ/ค่ะหากต้องการระบุคีย์แอปพลิเคชันเอง สามารถใช้ตัวแปรสภาพแวดล้อม ENCRYPTION_FIELD_KEY_PATH ได้ครับ/ค่ะ ปลั๊กอินจะโหลดไฟล์จากพาธที่ระบุนี้เพื่อใช้เป็นคีย์แอปพลิเคชัน
ข้อกำหนดสำหรับรูปแบบไฟล์คีย์แอปพลิเคชัน:
.key ครับ/ค่ะ
ฟิลด์ที่เข้ารหัสแล้วจะรองรับการกรองข้อมูลเฉพาะเงื่อนไขต่อไปนี้เท่านั้น: เท่ากับ, ไม่เท่ากับ, มีอยู่, ไม่มีอยู่ ครับ/ค่ะ

วิธีการกรองข้อมูล:
คีย์ฟิลด์ของฟิลด์ที่เข้ารหัส แล้วใช้คีย์แอปพลิเคชันถอดรหัสคีย์ฟิลด์ครับ/ค่ะคีย์ฟิลด์ลงนามข้อความค้นหาที่ผู้ใช้ป้อน (ด้วยอัลกอริทึมแฮช HMAC-SHA256) ครับ/ค่ะ. แล้วทำการค้นหาแบบ Prefix Match ในฐานข้อมูลสำหรับฟิลด์ที่เข้ารหัสครับ/ค่ะ
ก่อนใช้คำสั่ง nocobase key-rotation สำหรับการหมุนเวียนคีย์ โปรดตรวจสอบให้แน่ใจว่าแอปพลิเคชันได้โหลดปลั๊กอินนี้แล้วครับ/ค่ะ
เมื่อย้ายแอปพลิเคชันไปยังสภาพแวดล้อมใหม่ หากไม่ต้องการใช้คีย์แอปพลิเคชันตัวเดิมที่ใช้ในสภาพแวดล้อมเก่า สามารถใช้คำสั่ง nocobase key-rotation เพื่อเปลี่ยนคีย์แอปพลิเคชันได้ครับ/ค่ะ
การรันคำสั่งหมุนเวียนคีย์จำเป็นต้องระบุคีย์แอปพลิเคชันของสภาพแวดล้อมเก่า หลังจากรันคำสั่งแล้ว จะมีการสร้างคีย์แอปพลิเคชันใหม่ขึ้นมา และจะถูกจัดเก็บในรูปแบบ Base64 ไปยังไดเรกทอรีจัดเก็บเริ่มต้น เพื่อใช้แทนคีย์เก่าครับ/ค่ะ
หากเป็นการเปลี่ยนคีย์แอปพลิเคชันของแอปพลิเคชันย่อย จำเป็นต้องเพิ่มพารามิเตอร์ --app-name เพื่อระบุ name ของแอปพลิเคชันย่อยครับ/ค่ะ