ความปลอดภัยและลายเซ็น

ความปลอดภัยและลายเซ็น

ความปลอดภัยและลายเซ็น

Aspose.PDF FOSS for .NET รองรับลายเซ็นดิจิทัล PDF, การเข้ารหัสแบบใช้ใบรับรอง, และตัวจัดการความปลอดภัยแบบกำหนดเอง. ใช้ PdfSigner สำหรับกระบวนการลงลายเซ็นและ PdfCertificate สำหรับการจัดการใบรับรอง.


การลงนามเอกสาร

PdfSigner ใช้ลายเซ็นดิจิทัลกับ PDF โดยใช้ใบรับรอง PFX.

var cert = PdfCertificate.FromPfx("certificate.pfx", "password");
var signer = new PdfSigner();
signer.Sign(doc, cert);
doc.Save("signed.pdf");

การตรวจสอบลายเซ็น

var signer = new PdfSigner();
bool valid = signer.Verify(doc);
Console.WriteLine($"Signature valid: {valid}");

การลงนามด้วยลักษณะภาพ

signer.SignWithAppearance(doc, cert, signatureField, appearance);

การจัดการใบรับรอง

PdfCertificate โหลดใบรับรองจากไฟล์ PFX หรือไฟล์ที่เข้ารหัสเป็น DER.

// From PFX
var cert = PdfCertificate.FromPfx("cert.pfx", "password");

// From DER files (certificate + key)
var cert2 = PdfCertificate.FromDerFiles("cert.der", "key.der");

การเข้ารหัสแบบใช้ใบรับรอง

CertificateEncryptionOptions เข้ารหัส PDF เพื่อให้เฉพาะผู้ถือใบรับรองที่ระบุเท่านั้นที่สามารถเปิดได้.

var options = new CertificateEncryptionOptions(cert);

ตัวจัดการความปลอดภัยแบบกำหนดเอง

ดำเนินการ ICustomSecurityHandler สำหรับตรรกะการเข้ารหัสและถอดรหัสแบบกำหนดเอง.

public class MyHandler : ICustomSecurityHandler
{
    public void Initialize(EncryptionParameters parameters) { }
    public byte[] CalculateEncryptionKey() { /* ... */ return Array.Empty<byte>(); }
    public byte[] GetUserKey() { /* ... */ return Array.Empty<byte>(); }
    public byte[] GetOwnerKey() { /* ... */ return Array.Empty<byte>(); }
    public bool IsOwnerPassword(string password) { /* ... */ return false; }
    public bool IsUserPassword(string password) { /* ... */ return false; }
}

ข้อมูลอัลกอริทึมลายเซ็น

SignatureAlgorithmInfo อธิบายอัลกอริทึมที่ใช้ในลายเซ็นที่มีอยู่แล้ว.

var info = new SignatureAlgorithmInfo("SHA256withRSA");
Console.WriteLine(info.ToString());

เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด

  • ลงนามเอกสารเสมอเป็นขั้นตอนสุดท้าย — การแก้ไขใด ๆ หลังจากการลงนามทำให้ signature ไม่ถูกต้อง
  • ใช้ไฟล์ PFX พร้อมรหัสผ่านที่แข็งแรงสำหรับการจัดเก็บ certificate
  • ตรวจสอบ signatures หลังจากโหลด document เพื่อค้นพบการดัดแปลง
  • การเข้ารหัสแบบ Certificate-based ต้องการ public key certificate ของผู้รับ
  • ใช้ ICustomSecurityHandler เฉพาะเมื่อการเข้ารหัสมาตรฐานไม่เพียงพอ

ปัญหาทั่วไป

ปัญหาสาเหตุวิธีแก้
ลายเซ็นแสดงว่าไม่ถูกต้องDocument ถูกแก้ไขหลังจากการเซ็นทำการเซ็นใหม่หลังจากการแก้ไขทั้งหมดเสร็จสิ้น
การโหลด PFX ล้มเหลวรหัสผ่านผิดหรือไฟล์เสียหายตรวจสอบรหัสผ่านและความสมบูรณ์ของไฟล์
การเข้ารหัสทำให้ไม่สามารถเปิดไฟล์ได้ไม่ได้ระบุรหัสผ่านเจ้าของใช้รหัสผ่านเจ้าของหรือผู้ใช้ที่ถูกต้อง

คำถามที่พบบ่อย

อัลกอริทึมลายเซ็นที่รองรับคืออะไร?

RSA กับ SHA-256, SHA-384 และ SHA-512 ได้รับการสนับสนุนโดยทั่วไป. อัลกอริทึมที่มีให้ขึ้นอยู่กับประเภทคีย์ของใบรับรอง.

ฉันสามารถเพิ่มลายเซ็นหลายลายได้หรือไม่?

ใช่. ลายเซ็นแต่ละอันจะถูกนำไปใช้กับฟิลด์ลายเซ็นที่แยกจากกันในเอกสาร.

การลงนามต้องใช้ใบรับรองเชิงพาณิชย์หรือไม่?

ไม่. ใบรับรองที่ลงนามด้วยตนเองทำงานได้สำหรับการทดสอบ. สำหรับการใช้งานจริง ให้ใช้ ใบรับรองจาก CA ที่เชื่อถือได้.


สรุปการอ้างอิง API

Class / MethodDescription
PdfSignerลงนามและตรวจสอบความถูกต้องของเอกสาร PDF
PdfSigner.Signใช้ลายเซ็นดิจิทัล
PdfSigner.Verifyตรวจสอบความถูกต้องของลายเซ็น
PdfSigner.SignWithAppearanceลงนามด้วยฟิลด์ลายเซ็นที่มองเห็นได้
PdfCertificateตัวโหลดใบรับรองสำหรับรูปแบบ PFX และ DER
PdfCertificate.FromPfxโหลดจากไฟล์ PFX ด้วยรหัสผ่าน
PdfCertificate.FromDerFilesโหลดจากไฟล์ที่เข้ารหัสเป็น DER
CertificateEncryptionOptionsการเข้ารหัส PDF ด้วยใบรับรอง
ICustomSecurityHandlerอินเทอร์เฟซสำหรับการเข้ารหัส/ถอดรหัสแบบกำหนดเอง
EncryptionParametersพารามิเตอร์ที่ส่งให้ตัวจัดการความปลอดภัยแบบกำหนดเอง
SignatureAlgorithmInfoเมตาดาต้าเกี่ยวกับอัลกอริทึมของลายเซ็น

ดูเพิ่มเติม

 ภาษาไทย