Залог и подписи
Залог и подписи
Aspose.PDF FOSS for .NET supports PDF digital signatures, certificate-based използване на криптиране и персонализирани устройства за управление на сигурността. 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());Съвети и най-добри практики
- Винаги подписвайте документите като последна стъпка всяка промяна след подписане не валидира подписа.
- Използвайте PFX файлове със силни пароли за съхранение на сертификати.
- Проверяване на подписите след зареждане на документ, за да се открие подправяне.
- За криптиране на базата на сертификат се изисква сертификата с публичен ключ на получателя.
- Изпълнение
ICustomSecurityHandlerсамо когато стандартното криптиране е недостатъчно.
Общи проблеми
| Издание | Причина за това | Ремонтиране |
|---|---|---|
| Подписът е невалиден. | Документ, изменен след подписване | Подписване на всички изменения. |
| Не успява да зареди PFX. | Неправилна парола или повреден файл | Проверете паролата и целостта на файла. |
| Шифроването пречи на отварянето. | Парола на собственика не е предоставена. | Използвайте правилната собственичка или парола на потребителя. |
FAQ
Какви алгоритми за подписване се подкрепят?
RSA с SHA-256, Sha-384 и Shaa-512 обикновено се поддържат. Наличните алгоритми зависят от типа на ключа на сертификата.
Мога ли да добавя няколко подписа?
Да. Всеки подпис се прилага към отделно поле за подписа в документа.
За подписването на документа е необходим ли търговски сертификат?
Не, самоподписаните сертификати работят за тестване.За производство използвайте сертификат от доверен сертифициращ орган.
Снимка на API референтна информация
| Клас / метод | Описание на състоянието |
|---|---|
PdfSigner | Подписване и проверка на PDF документи |
PdfSigner.Sign | Прилагане на цифров подпис |
PdfSigner.Verify | Проверете валидността на подписването. |
PdfSigner.SignWithAppearance | Подпис с поле за визуален подпис |
PdfCertificate | Зареждащ сертификат за формати PFX и DER |
PdfCertificate.FromPfx | Зареждане от PFX файл с парола |
PdfCertificate.FromDerFiles | Зареждане от DER-кодирани файлове |
CertificateEncryptionOptions | Шифроване на PDF, основано на сертификат |
ICustomSecurityHandler | Интерфейс за персонализирано криптиране/дешифриране |
EncryptionParameters | Параметри, предавани на персонализирани оператори за сигурност |
SignatureAlgorithmInfo | Метаданни за алгоритъма на подпис |