Saugumas ir parašai
Saugumas ir parašai
Aspose.PDF FOSS for .NET palaiko PDF skaitmeninius parašus, sertifikatais pagrįstą šifravimą ir pasirinktinius saugumo tvarkytuvus. Naudokite PdfSigner parašų darbo srautams ir PdfCertificate sertifikatų valdymui.
Dokumento pasirašymas
PdfSigner prideda skaitmeninį parašą PDF dokumentui naudojant PFX sertifikatą.
var cert = PdfCertificate.FromPfx("certificate.pfx", "password");
var signer = new PdfSigner();
signer.Sign(doc, cert);
doc.Save("signed.pdf");Parašų tikrinimas
var signer = new PdfSigner();
bool valid = signer.Verify(doc);
Console.WriteLine($"Signature valid: {valid}");Pasirašymas su vizualine išvaizda
signer.SignWithAppearance(doc, cert, signatureField, appearance);Sertifikatų valdymas
PdfCertificate įkelia sertifikatus iš PFX failų arba DER koduotų failų.
// From PFX
var cert = PdfCertificate.FromPfx("cert.pfx", "password");
// From DER files (certificate + key)
var cert2 = PdfCertificate.FromDerFiles("cert.der", "key.der");Sertifikatu pagrįstas šifravimas
CertificateEncryptionOptions šifruoja PDF, kad jį galėtų atidaryti tik nurodyti sertifikato turėtojai.
var options = new CertificateEncryptionOptions(cert);Pritaikytos saugumo tvarkyklės
Įgyvendinkite ICustomSecurityHandler pritaikytai šifravimo ir dešifravimo logikai.
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; }
}Parašo algoritmo informacija
SignatureAlgorithmInfo aprašo algoritmą, naudojamą esamo parašo.
var info = new SignatureAlgorithmInfo("SHA256withRSA");
Console.WriteLine(info.ToString());Patarimai ir geriausios praktikos
- Visada pasirašykite dokumentus kaip paskutinį žingsnį — bet koks pakeitimas po pasirašymo anuliuoja parašą.
- Naudokite PFX failus su stipriais slaptažodžiais sertifikatų saugojimui.
- Patikrinkite parašus įkėlus dokumentą, kad aptiktumėte manipuliavimą.
- Sertifikatu pagrįstas šifravimas reikalauja gavėjo viešojo rakto sertifikato.
- Įgyvendinkite
ICustomSecurityHandlertik tada, kai standartinis šifravimas nepakankamas.
Dažnos problemos
| Issue | Cause | Fix |
|---|---|---|
| Parašas rodomas kaip neteisingas | Dokumentas modifikuotas po pasirašymo | Pasirašykite iš naujo, kai visi pakeitimai baigti |
| PFX įkėlimas nepavyksta | Neteisingas slaptažodis arba sugadintas failas | Patikrinkite slaptažodį ir failo vientisumą |
| Šifravimas neleidžia atidaryti | Nenurodytas savininko slaptažodis | Naudokite teisingą savininko arba naudotojo slaptažodį |
DUK
Kokie parašo algoritmai palaikomi?
RSA su SHA-256, SHA-384 ir SHA-512 dažniausiai palaikoma. Prieinami algoritmai priklauso nuo sertifikato rakto tipo.
Ar galiu pridėti kelis parašus?
Taip. Kiekvienas parašas yra pritaikytas atskiram parašo laukui dokumente.
Ar pasirašymas reikalauja komercinio sertifikato?
Ne. Savarankiškai pasirašyti sertifikatai tinka testavimui. Gamyboje naudokite sertifikatą iš patikimo CA.
API nuorodų santrauka
| Class / Method | Description |
|---|---|
PdfSigner | Pasirašyti ir patikrinti PDF dokumentus |
PdfSigner.Sign | Taikyti skaitmeninį parašą |
PdfSigner.Verify | Patikrinti parašo galiojimą |
PdfSigner.SignWithAppearance | Pasirašyti naudojant vizualų parašo lauką |
PdfCertificate | Sertifikatų įkėlėjas PFX ir DER formatams |
PdfCertificate.FromPfx | Įkelti iš PFX failo su slaptažodžiu |
PdfCertificate.FromDerFiles | Įkelti iš DER koduotų failų |
CertificateEncryptionOptions | Sertifikatu pagrįstas PDF šifravimas |
ICustomSecurityHandler | Sąsaja pasirinktiniam šifravimui/dešifravimui |
EncryptionParameters | Parametrai, perduodami pasirinktiniams saugumo tvarkyklėms |
SignatureAlgorithmInfo | Metaduomenys apie parašo algoritmą |