Keselamatan dan Tandatangan
Keselamatan dan Tandatangan
Aspose.PDF FOSS for .NET menyokong tandatangan digital PDF, penyulitan berasaskan sijil, dan pengendali keselamatan tersuai. Gunakan PdfSigner untuk aliran kerja penandatanganan dan PdfCertificate untuk pengurusan sijil.
Menandatangani dokumen
PdfSigner menerapkan tandatangan digital pada PDF menggunakan sijil PFX.
var cert = PdfCertificate.FromPfx("certificate.pfx", "password");
var signer = new PdfSigner();
signer.Sign(doc, cert);
doc.Save("signed.pdf");Mengesahkan tandatangan
var signer = new PdfSigner();
bool valid = signer.Verify(doc);
Console.WriteLine($"Signature valid: {valid}");Menandatangani dengan penampilan visual
signer.SignWithAppearance(doc, cert, signatureField, appearance);Pengurusan sijil
PdfCertificate memuatkan sijil daripada fail PFX atau fail yang dienkod DER.
// From PFX
var cert = PdfCertificate.FromPfx("cert.pfx", "password");
// From DER files (certificate + key)
var cert2 = PdfCertificate.FromDerFiles("cert.der", "key.der");Penyulitan berasaskan sijil
CertificateEncryptionOptions menyulitkan PDF supaya hanya pemegang sijil yang ditentukan dapat membukanya.
var options = new CertificateEncryptionOptions(cert);Pengendali keselamatan tersuai
Laksanakan ICustomSecurityHandler untuk logik penyulitan dan penyahkodan tersuai.
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; }
}Maklumat algoritma tandatangan
SignatureAlgorithmInfo menerangkan algoritma yang digunakan dalam tandatangan sedia ada.
var info = new SignatureAlgorithmInfo("SHA256withRSA");
Console.WriteLine(info.ToString());Petua dan Amalan Terbaik
- Sentiasa tandatangani dokumen sebagai langkah terakhir — sebarang pengubahsuaian selepas penandatanganan akan membatalkan tandatangan.
- Gunakan fail PFX dengan kata laluan yang kuat untuk penyimpanan sijil.
- Sahkan tandatangan selepas memuatkan dokumen untuk mengesan gangguan.
- Penyulitan berasaskan sijil memerlukan sijil kunci awam penerima.
- Laksanakan
ICustomSecurityHandlerhanya apabila penyulitan standard tidak mencukupi.
Isu Umum
| Isu | Punca | Penyelesaian |
|---|---|---|
| Tandatangan dipaparkan tidak sah | Dokumen diubah selepas penandatanganan | Tandatangan semula selepas semua pengubahsuaian selesai |
| Pemuatkan PFX gagal | Kata laluan salah atau fail rosak | Sahkan kata laluan dan integriti fail |
| Penyulitan menghalang pembukaan | Kata laluan pemilik tidak diberikan | Gunakan kata laluan pemilik atau pengguna yang betul |
Soalan Lazim
Apakah algoritma tandatangan yang disokong?
RSA dengan SHA-256, SHA-384, dan SHA-512 biasanya disokong. Algoritma yang tersedia bergantung pada jenis kunci sijil.
Bolehkah saya menambah berbilang tandatangan?
Ya. Setiap tandatangan diterapkan pada medan tandatangan yang berasingan dalam dokumen.
Adakah penandatanganan memerlukan sijil komersial?
Tidak. Sijil yang ditandatangani sendiri berfungsi untuk ujian. Untuk produksi, gunakan sijil daripada CA yang dipercayai.
Ringkasan Rujukan API
| Kelas / Kaedah | Penerangan |
|---|---|
PdfSigner | Tandatangan dan sahkan dokumen PDF |
PdfSigner.Sign | Gunakan tandatangan digital |
PdfSigner.Verify | Semak kesahihan tandatangan |
PdfSigner.SignWithAppearance | Tandatangan dengan medan tandatangan visual |
PdfCertificate | Pemuat sijil untuk format PFX dan DER |
PdfCertificate.FromPfx | Muat dari fail PFX dengan kata laluan |
PdfCertificate.FromDerFiles | Muat dari fail berkod DER |
CertificateEncryptionOptions | Penyulitan PDF berasaskan sijil |
ICustomSecurityHandler | Antara muka untuk penyulitan/penyahkripan tersuai |
EncryptionParameters | Parameter yang dihantar kepada pengendali keselamatan tersuai |
SignatureAlgorithmInfo | Metadata mengenai algoritma tandatangan |