精华内容
下载资源
问答
  • itextpdf 数字签名
    2021-12-01 10:45:15

    itextpdf 数字签名

                     

                        

    **************

    相关类与接口

             

    PdfSingner

    public class PdfSigner {
        public static final int NOT_CERTIFIED = 0;
        public static final int CERTIFIED_NO_CHANGES_ALLOWED = 1;
        public static final int CERTIFIED_FORM_FILLING = 2;
        public static final int CERTIFIED_FORM_FILLING_AND_ANNOTATIONS = 3;
        protected int certificationLevel;
        protected String fieldName;
        protected RandomAccessFile raf;
        protected byte[] bout;
        protected long[] range;
        protected PdfDocument document;
        protected PdfSignature cryptoDictionary;
        private PdfName digestMethod;
        protected PdfSigner.ISignatureEvent signatureEvent;
        protected OutputStream originalOS;
        protected ByteArrayOutputStream temporaryOS;
        protected File tempFile;
        protected Map<PdfName, PdfLiteral> exclusionLocations;
        protected boolean preClosed;
        protected PdfSigFieldLock fieldLock;
        protected PdfSignatureAppearance appearance;
        protected Calendar signDate;
        protected boolean closed;
    
    
    ********
    构造方法
    
        public PdfSigner(PdfReader reader, OutputStream outputStream, StampingProperties properties) throws IOException {
        public PdfSigner(PdfReader reader, OutputStream outputStream, String path, StampingProperties properties) throws IOException {
    
    
    ********
    其他方法
    
        public void setFieldName(String fieldName) {
        public void setSignDate(Calendar signDate) {
        public void setFieldLockDict(PdfSigFieldLock fieldLock) {
        public void setCertificationLevel(int certificationLevel) {
        public void setOriginalOutputStream(OutputStream originalOS) {
        public void setSignatureEvent(PdfSigner.ISignatureEvent signatureEvent) {
    
        public String getFieldName() {
        public Calendar getSignDate() {
        public PdfDocument getDocument() {
        public int getCertificationLevel() {
        public String getNewSigFieldName() {
        public PdfSigFieldLock getFieldLockDict() {
        public PdfSignature getSignatureDictionary() {
        public PdfSigner.ISignatureEvent getSignatureEvent() {
        public PdfSignatureAppearance getSignatureAppearance() {
    
        public void signDetached(IExternalDigest externalDigest, IExternalSignature externalSignature, Certificate[] chain, Collection<ICrlClient> crlList, IOcspClient ocspClient, ITSAClient tsaClient, int estimatedSize, PdfSigner.CryptoStandard sigtype) throws IOException, GeneralSecurityException {
        public void signDetached(IExternalDigest externalDigest, IExternalSignature externalSignature, Certificate[] chain, Collection<ICrlClient> crlList, IOcspClient ocspClient, ITSAClient tsaClient, int estimatedSize, PdfSigner.CryptoStandard sigtype, SignaturePolicyInfo signaturePolicy) throws IOException, GeneralSecurityException {
        public void signDetached(IExternalDigest externalDigest, IExternalSignature externalSignature, Certificate[] chain, Collection<ICrlClient> crlList, IOcspClient ocspClient, ITSAClient tsaClient, int estimatedSize, PdfSigner.CryptoStandard sigtype, SignaturePolicyIdentifier signaturePolicy) throws IOException, GeneralSecurityException {
                                //签名方法
    
        public void signExternalContainer(IExternalSignatureContainer externalSignatureContainer, int estimatedSize) throws GeneralSecurityException, IOException {
        public static void signDeferred(PdfDocument document, String fieldName, OutputStream outs, IExternalSignatureContainer externalSignatureContainer) throws IOException, GeneralSecurityException {
        public void timestamp(ITSAClient tsa, String signatureName) throws IOException, GeneralSecurityException {
    
    
        protected boolean isPreClosed() {
        protected void addDocMDP(PdfSignature crypto) {
        protected void setDocument(PdfDocument document) {
        protected InputStream getRangeStream() throws IOException {
        protected int getWidgetPageNumber(PdfWidgetAnnotation widget) {
        protected Rectangle getWidgetRectangle(PdfWidgetAnnotation widget) {
        protected boolean documentContainsCertificationOrApprovalSignatures() {
        protected void addDeveloperExtension(PdfDeveloperExtension extension) {
        protected IRandomAccessSource getUnderlyingSource() throws IOException {
        protected void addFieldMDP(PdfSignature crypto, PdfSigFieldLock fieldLock) {
        protected void preClose(Map<PdfName, Integer> exclusionSizes) throws IOException {
        protected PdfSigFieldLock populateExistingSignatureFormField(PdfAcroForm acroForm) throws IOException {
        protected PdfDocument initDocument(PdfReader reader, PdfWriter writer, StampingProperties properties) {
        protected Collection<byte[]> processCrl(Certificate cert, Collection<ICrlClient> crlList) {
        protected PdfSigFieldLock createNewSignatureFormField(PdfAcroForm acroForm, String name) throws IOException {
    
        private void setDigestParamToSigRefIfNeeded(PdfDictionary reference) {
        private PdfName getHashAlgorithmNameInCompatibleForPdfForm(String hashAlgorithm) {
        private boolean isDocumentPdf2() {
        private static StampingProperties initStampingProperties(boolean append) {
    
    
    ********
    内部接口:ISignatureEvent
    
        public interface ISignatureEvent {
            void getSignatureDictionary(PdfSignature var1);
        }
    
    
    ********
    内部枚举:CryptoStandard
    
        public static enum CryptoStandard {
            CMS,
            CADES;
    
            private CryptoStandard() {
            }
        }
    }
    

                 

    StampingProperties

    public class StampingProperties extends DocumentProperties {
        protected boolean appendMode = false;
        protected boolean preserveEncryption = false;
    
        public StampingProperties() {
        }
    
        public StampingProperties(StampingProperties other) {
            super(other);
            this.appendMode = other.appendMode;
            this.preserveEncryption = other.preserveEncryption;
        }
    
        public StampingProperties useAppendMode() {
            this.appendMode = true;
            return this;
        }
    
        public StampingProperties preserveEncryption() {
            this.preserveEncryption = true;
            return this;
        }
    }
    

                     

    DocumentProperties

    public class DocumentProperties {
        protected IMetaInfo metaInfo = null;
    
        public DocumentProperties() {
        }
    
        public DocumentProperties(DocumentProperties other) {
            this.metaInfo = other.metaInfo;
        }
    
        public DocumentProperties setEventCountingMetaInfo(IMetaInfo metaInfo) {
            this.metaInfo = metaInfo;
            return this;
        }
    }
    

                

    PdfSignatureAppearance

    public class PdfSignatureAppearance {
        private static final float TOP_SECTION = 0.3F;
        private static final float MARGIN = 2.0F;
        private PdfDocument document;
        private int page = 1;
        private Rectangle rect;
        private Rectangle pageRect;
        private PdfFormXObject n0;
        private PdfFormXObject n2;
        private PdfFormXObject topLayer;
        private PdfSignatureAppearance.RenderingMode renderingMode;
        private String reason;
        private String reasonCaption;
        private String location;
        private String locationCaption;
        private String signatureCreator;
        private String contact;
        private Calendar signDate;
        private Certificate signCertificate;
        private ImageData signatureGraphic;
        private ImageData image;
        private float imageScale;
        private String layer2Text;
        private PdfFont layer2Font;
        private float layer2FontSize;
        private Color layer2FontColor;
        private String fieldName;
        private boolean reuseAppearance;
    
    
    ********
    构造方法
    
        protected PdfSignatureAppearance(PdfDocument document, Rectangle pageRect, int pageNumber) {
    
    
    ********
    其他方法
    
        public PdfSignatureAppearance setReason(String reason) {
        public PdfSignatureAppearance setImage(ImageData image) {
        public PdfSignatureAppearance setLayer2Text(String text) {
        public PdfSignatureAppearance setContact(String contact) {
        public PdfSignatureAppearance setLocation(String location) {
        public PdfSignatureAppearance setPageNumber(int pageNumber) {
        public PdfSignatureAppearance setLayer2FontColor(Color color) {
        public PdfSignatureAppearance setPageRect(Rectangle pageRect) {
        public PdfSignatureAppearance setImageScale(float imageScale) {
        public PdfSignatureAppearance setLayer2Font(PdfFont layer2Font) {
        public PdfSignatureAppearance setLayer2FontSize(float fontSize) {
        public PdfSignatureAppearance setReasonCaption(String reasonCaption) {
        public PdfSignatureAppearance setLocationCaption(String locationCaption) {
        public PdfSignatureAppearance setReuseAppearance(boolean reuseAppearance) {
        public PdfSignatureAppearance setCertificate(Certificate signCertificate) {
        public PdfSignatureAppearance setSignatureCreator(String signatureCreator) {
        public PdfSignatureAppearance setSignatureGraphic(ImageData signatureGraphic) {
        public PdfSignatureAppearance setRenderingMode(PdfSignatureAppearance.RenderingMode renderingMode) {
    
    
        public String getReason() {
        public String getContact() {
        public int getPageNumber() {
        public String getLocation() {
        public ImageData getImage() {
        public float getImageScale() {
        public boolean isInvisible() {
        public String getLayer2Text() {
        public PdfFont getLayer2Font() {
        public Rectangle getPageRect() {
        public float getLayer2FontSize() {
        public Color getLayer2FontColor() {
        public PdfFormXObject getLayer0() {
        public PdfFormXObject getLayer2() {
        public String getSignatureCreator() {
        public Certificate getCertificate() {
        public ImageData getSignatureGraphic() {
        public PdfSignatureAppearance.RenderingMode getRenderingMode() {
    
    
        protected PdfFormXObject getAppearance() throws IOException {
        protected Calendar getSignDate() {
        protected PdfSignatureAppearance setSignDate(Calendar signDate) {
        protected PdfSignatureAppearance setFieldName(String fieldName) {
    
        private static Rectangle rotateRectangle(Rectangle rect, int angle) {
        private void createBlankN0() {
        private void addTextToCanvas(String text, PdfFont font, Rectangle dataRect) {
        private void applyCopyFittingFontSize(Paragraph paragraph, Rectangle rect, IRenderer parentRenderer) {
    
        String generateLayer2Text() {
    
    
    ********
    内部枚举:RenderingMode
    
        public static enum RenderingMode {
            DESCRIPTION,
            NAME_AND_DESCRIPTION,
            GRAPHIC_AND_DESCRIPTION,
            GRAPHIC;
    
            private RenderingMode() {
            }
        }
    }
    

                    

    IExternalDigest

    public interface IExternalDigest {
        MessageDigest getMessageDigest(String var1) throws GeneralSecurityException;
    }
    

                  

    ProviderDigest

    public class ProviderDigest implements IExternalDigest {
        private String provider;
    
        public ProviderDigest(String provider) {
            this.provider = provider;
        }
    
        public MessageDigest getMessageDigest(String hashAlgorithm) throws GeneralSecurityException {
            return DigestAlgorithms.getMessageDigest(hashAlgorithm, this.provider);
        }
    }
    

                  

    BouncyCastleDigest

    public class BouncyCastleDigest implements IExternalDigest {
        public BouncyCastleDigest() {
        }
    
        public MessageDigest getMessageDigest(String hashAlgorithm) throws GeneralSecurityException {
    

                          

                          

    IExternalSignature

    public interface IExternalSignature {
        String getHashAlgorithm();
    
        String getEncryptionAlgorithm();
    
        byte[] sign(byte[] var1) throws GeneralSecurityException;
    }
    

                   

    PrivateKeySignature

    public class PrivateKeySignature implements IExternalSignature {
        private PrivateKey pk;
        private String hashAlgorithm;
        private String encryptionAlgorithm;
        private String provider;
    
        public PrivateKeySignature(PrivateKey pk, String hashAlgorithm, String provider) {
    
        public String getHashAlgorithm() {
        public String getEncryptionAlgorithm() {
    
        public byte[] sign(byte[] message) throws GeneralSecurityException {
    

                    

                   

    **************

    生成p12证书

              

    keytool 命令参数

    [root@centos keytool]# keytool -h
    密钥和证书管理工具
    
    命令:
    
     -certreq            生成证书请求
     -changealias        更改条目的别名
     -delete             删除条目
     -exportcert         导出证书
     -genkeypair         生成密钥对
     -genseckey          生成密钥
     -gencert            根据证书请求生成证书
     -importcert         导入证书或证书链
     -importpass         导入口令
     -importkeystore     从其他密钥库导入一个或所有条目
     -keypasswd          更改条目的密钥口令
     -list               列出密钥库中的条目
     -printcert          打印证书内容
     -printcertreq       打印证书请求的内容
     -printcrl           打印 CRL 文件的内容
     -storepasswd        更改密钥库的存储口令
     -showinfo           显示安全相关信息
    

                  

    keytool -genkeypair:生成密钥对

    [root@centos keytool]# keytool -genkeypair -h
    keytool -genkeypair [OPTION]...
    
    生成密钥对
    
    选项:
    
     -alias <alias>          要处理的条目的别名
     -keyalg <alg>           密钥算法名称
     -keysize <size>         密钥位大小
     -groupname <name>       组名。例如,椭圆曲线名称。
     -sigalg <alg>           签名算法名称
     -dname <name>           唯一判别名
     -startdate <date>       证书有效期开始日期/时间
     -ext <value>            X.509 扩展
     -validity <days>        有效天数
     -keypass <arg>          密钥口令
     -keystore <keystore>    密钥库名称
     -storepass <arg>        密钥库口令
     -storetype <type>       密钥库类型
     -providername <name>    提供方名称
     -addprovider <name>     按名称 (例如 SunPKCS11) 添加安全提供方
       [-providerarg <arg>]    配置 -addprovider 的参数
     -providerclass <class>  按全限定类名添加安全提供方
       [-providerarg <arg>]    配置 -providerclass 的参数
     -providerpath <list>    提供方类路径
     -v                      详细输出
     -protected              通过受保护的机制的口令
    

                 

    keytool -importkeystore:导入密钥库,转换生成p12证书

    [root@centos keytool]# keytool -importkeystore -h
    keytool -importkeystore [OPTION]...
    
    从其他密钥库导入一个或所有条目
    
    选项:
    
     -srckeystore <keystore>   源密钥库名称
     -destkeystore <keystore>  目标密钥库名称
     -srcstoretype <type>      源密钥库类型
     -deststoretype <type>     目标密钥库类型
     -srcstorepass <arg>       源密钥库口令
     -deststorepass <arg>      目标密钥库口令
     -srcprotected             受保护的源密钥库口令
     -destprotected            受保护的目标密钥库口令
     -srcprovidername <name>   源密钥库提供方名称
     -destprovidername <name>  目标密钥库提供方名称
     -srcalias <alias>         源别名
     -destalias <alias>        目标别名
     -srckeypass <arg>         源密钥口令
     -destkeypass <arg>        目标密钥口令
     -noprompt                 不提示
     -addprovider <name>       按名称 (例如 SunPKCS11) 添加安全提供方
       [-providerarg <arg>]      配置 -addprovider 的参数
     -providerclass <class>    按全限定类名添加安全提供方
       [-providerarg <arg>]      配置 -providerclass 的参数
     -providerpath <list>      提供方类路径
     -v                        详细输出
    

                   

    示例:生成p12证书

    # 生成签名证书(keystore)
    [root@centos keytool]# keytool -genkeypair -alias serverkey \
    > -keypass 123456 -storepass 123456 \
    > -dname "C=CN,ST=SD,L=QD,O=ali,OU=dev,CN=li" \
    > -keyalg RSA -keysize 2048 -validity 3650 \
    > -keystore ./cert.keystore
    正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 3,650 天):
    	 C=CN, ST=SD, L=QD, O=ali, OU=dev, CN=li
    
    # 生成p12证书
    [root@centos keytool]#  keytool -importkeystore \
    > -srckeystore ./cert.keystore -destkeystore ./cert.p12 \
    > -srcstorepass 123456 -deststorepass 123456 -noprompt \
    > -srcalias serverkey -destalias serverkey \
    > -srcstoretype jks -deststoretype pkcs12 \
    > ;
    正在将密钥库 ./cert.keystore 导入到 ./cert.p12...
    
    
    # 查看生成的证书
    [root@centos keytool]# % ls cert*
    cert.keystore	cert.p12

                   

                      

    **************

    示例

              

    public class Test3 {
     
        public static final String src = "./signature/1.pdf";      //待签名的pdf文件
        public static final String cert = "./signature/cert.p12";  //使用上面生成的p12证书
        public static final String img = "./signature/sign.jpg";   //签名图章
     
        private static final String dest = "./signature/sign.pdf"; //签名后的pdf文件
     
        public static void fun() throws Exception {
            PdfSigner pdfSigner = new PdfSigner(new PdfReader(src), new FileOutputStream(dest),
                    new StampingProperties());
            pdfSigner.setCertificationLevel(PdfSigner.CERTIFIED_NO_CHANGES_ALLOWED);
            pdfSigner.setFieldName("signature");
    
            PdfSignatureAppearance signatureAppearance = pdfSigner.getSignatureAppearance();
            signatureAppearance.setRenderingMode(PdfSignatureAppearance.RenderingMode.GRAPHIC);
            signatureAppearance.setReason("");
            signatureAppearance.setLocationCaption("");
    
            ImageData image = ImageDataFactory.create(img);
            signatureAppearance.setSignatureGraphic(image);
            signatureAppearance.setPageNumber(1);
            signatureAppearance.setPageRect(new Rectangle(300, 600, 100, 100));
    
            char[] password = "123456".toCharArray();
            IExternalSignature pks = getPrivateKeySignature(password);
            Certificate[] chain = getCertificateChain(password);
    
            pdfSigner.signDetached(new BouncyCastleDigest(), pks,chain,null, null, null,
                    0, PdfSigner.CryptoStandard.CMS);
        }
     
        private static PrivateKeySignature getPrivateKeySignature(char[] password) throws Exception {
            PrivateKey pk = null;
    
            KeyStore p12 = KeyStore.getInstance("pkcs12");
            p12.load(new FileInputStream(cert), password);
     
            Enumeration<String> aliases = p12.aliases();
            while (aliases.hasMoreElements()) {
                String alias = aliases.nextElement();
                if (p12.isKeyEntry(alias)) {
                    pk = (PrivateKey) p12.getKey(alias, password);
                    break;
                }
            }
     
            Security.addProvider(new BouncyCastleProvider());
            return new PrivateKeySignature(pk, DigestAlgorithms.SHA512, BouncyCastleProvider.PROVIDER_NAME);
        }
     
     
        private static Certificate[] getCertificateChain(char[] password) throws Exception {
            Certificate[] certChain = null;
     
            KeyStore p12 = KeyStore.getInstance("pkcs12");
            p12.load(new FileInputStream(cert), password);
     
            Enumeration<String> aliases = p12.aliases();
            while (aliases.hasMoreElements()) {
                String alias = aliases.nextElement();
                if (p12.isKeyEntry(alias)) {
                    certChain = p12.getCertificateChain(alias);
                    break;
                }
            }
            return certChain;
        }
     
        public static void main(String[] args) throws Exception {
            fun();
        }
    }

                 

    源文件:1.pdf

                 

                    

     数字签名后的文件:sign.pdf

                 

              

            

    更多相关内容
  • 其实数字签名是可以删掉的,今天小编就来为大家介绍删除PDF数字签名的方法,一起来看: 删除工具:迅捷PDF编辑器 具体的操作方法: 1:打开PDF编辑器,点击【打开】按钮,选择添加需要删除数字签名的PDF文件即可。 ...

    PDF如何删除数字签名?大家在使用PDF的过程中应该有发现有些PDF文件中会有签名,有文字签名也会有数字签名,有时候这些不必要的签名可能会影响到自己对文件的评估。
    其实数字签名是可以删掉的,今天小编就来为大家介绍删除PDF数字签名的方法,一起来看:
    在这里插入图片描述
    删除工具:迅捷PDF编辑器
    具体的操作方法:
    1:打开PDF编辑器,点击【打开】按钮,选择添加需要删除数字签名的PDF文件即可。
    在这里插入图片描述
    2:之后找到菜单栏中的【文档】栏目,点击选择文档下的【数字签名】,然后会出现删除签名的选择哦,直接点击就可以了,这样数字签名就被删除了。
    在这里插入图片描述
    其实删除PDF数字签名还是挺简单的,选了合适的工具之后只需要点击一个清除的按钮就可以搞定了,如果你有这方面的需要的话可以去尝试操作一下。
    删除PDF数字签名的方法介绍完了,下边是添加数字签名的方法,说不定哪天会用上,一起学习吧:
    1:同样点击【文档】选项,选择【数字签名】功能,之后点击选择【签名文档】的功能就可以进入操作页面。
    在这里插入图片描述
    2:这时候页面会出现一个选框,将需要签名的地方框起来,然后就可以开始添加签名啦。
    在这里插入图片描述
    3:我们在弹出的窗口中进行签名的设置,我们可以为文件选择证书,设置完成就可以创建证书啦。
    在这里插入图片描述
    4:还可以设置签名的详细信息和外观,我们根据自己的需要来进行设置就可以了。
    在这里插入图片描述
    5:最后点击【确定】按钮,签名就添加成功啦。
    在这里插入图片描述
    删除PDF数字签名的方法就在这里了,有需要的朋友赶紧收藏起来,里面还介绍了添加数字签名的功能,说不定哪天你就能用上了,学会之后以备不时之需!

    展开全文
  • 本文通过Java程序示例代码展示如何来删除PDF文档中已有的数字签名。通过本文中的方法,在编辑代码前,须将free spire.pdf.jar 4.4.1文件导入java程序,如图所示为手动下载jar包然后解压导入程序的效果: 另外,也...

    本文通过Java程序示例代码展示如何来删除PDF文档中已有的数字签名。通过本文中的方法,在编辑代码前,须将free spire.pdf.jar 4.4.1文件导入java程序,如图所示为手动下载jar包然后解压导入程序的效果:

    另外,也可以通过maven仓库下载导入,通过这种方式需在pom.xml文件中配置maven仓库路径并指定jar版本(如下),配置完成后导入。

    <repositories>
            <repository>
                <id>com.e-iceblue</id>
                <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
            </repository>
        </repositories>
    <dependencies>
        <dependency>
            <groupId> e-iceblue </groupId>
            <artifactId>spire.pdf.free</artifactId>
            <version>4.4.1</version>
        </dependency>
    </dependencies>
    

    Java代码示例

    import com.spire.pdf.PdfDocument;
    import com.spire.pdf.widget.PdfFieldWidget;
    import com.spire.pdf.widget.PdfFormWidget;
    import com.spire.pdf.widget.PdfSignatureFieldWidget;
    
    public class DeleteSignature {
    
        public static void main(String[] args) {
            //创建PdfDocument对象
            PdfDocument pdf = new PdfDocument();
    
            //加载PDF文档
            pdf.loadFromFile("AddSignature.pdf");
    
            //从文档获取form widget集合
            PdfFormWidget widgets = (PdfFormWidget) pdf.getForm();
    
            //遍历集合中的每一个元素
            for (int i = 0; i < widgets.getFieldsWidget().getList().size(); i++)
            {
                //获取指定widget
                PdfFieldWidget widget = (PdfFieldWidget)widgets.getFieldsWidget().getList().get(i);
    
                //判断widget是否为PdfSignatureFieldWidget
                if (widget instanceof PdfSignatureFieldWidget)
                {
                    //删除数字签名widget
                    widgets.getFieldsWidget().remove(widget);
                }
            }
    
            //保存文档
            pdf.saveToFile("RemoveSignature.pdf");
            pdf.dispose();
        }
    }
    

    签名删除小效果:

     

    相关文章推荐阅读:

     

    本文内容原创,如需转载请务必注明出处!

    展开全文
  • PDF如何删除数字签名

    万次阅读 2019-05-15 14:09:55
    大家在使用PDF文件的时候,不知道有没有注意到,在PDF文件中有时文件中有签名,有签名,也有数字签名PDF文件在修改时需要借助到PDF编辑器,那么,怎么将文件中的数字签名进行删除呢,小编为大家整理了方法,一起看...

            大家在使用PDF文件的时候,不知道有没有注意到,在PDF文件中有时文件中有签名,有签名,也有数字签名,PDF文件在修改时需要借助到PDF编辑器,那么,怎么将文件中的数字签名进行删除呢,小编为大家整理了方法,一起看看吧。

            使用工具:PDF编辑工具http://bianji.xjpdf.com/

            1.修改PDF文件之前,需要将PDF文件在编辑器中打开,选择打开工具,然后选择需要修改的文件,点击确定就可以将其打开。

            2.文件打开后,删除签名,首先,需要先找到签名工具,点击菜单栏中的文档选项,然后在文档选项中有签名与缩写以及数字签名工具。

            3.先点击签名与缩写工具,如果是在这个工具中添加的签名,点击签名与缩写工具后,选择工具中的管理选项,点击管理。

            4.点击管理选项后,在工具栏中有添加,编辑,删除以及删除所有,而工具栏的下面会显示文件中的签名,选中签名,点击工具栏中的删除或者是选择删除所有选项即可删除。

            5.而数字签名的删除就很简单了,点击文档选项,然后选择文档选项中的数字签名工具,点击清除所有签名就可以了哦。

            签名的删除,在签名工具中有添加就可以将其删除,方法小编已经整理好了,小伙伴们可以对照上面的文章进行操作。有什么不明白的地方再询问小编。

    展开全文
  • 很多网上的PDF说明文档都加了口令和签名防止文档被非法篡改和复制,文本提供亲测有效一个去处PDF文档签名和口令的方法,仅限于学习和非商业通途★★★★★声明: 请勿使用本文介绍的方法做任何违规违法的事情,若发生...
  • 以下内容通过C#及VB.NET代介绍如何给Excel文档添加数字签名,以及删除Excel文档中已有的数字签名。工具使用最近发布的Spire.XLS for .NET 版本10.11.2,可在官网下载包,或者通过Nuget搜索下载;编辑代码前,注意先...
  • 技巧分享 PDF如何删除数字签名

    千次阅读 2019-03-21 15:52:32
    大家在使用PDF文件的时候,不知道有没有注意到,在PDF文件中有时文件中有签名,有签名,也有数字签名PDF文件在修改时需要借助到PDF编辑器,那么,怎么将文件中的数字签名进行删除呢,小编为大家整理了方法,一起看...
  • itextpdf 提取数字签名签章图片 因业务需求,需要对签名的pdf进行签名验证,政府的电子验证的功能是除了提取pdf表单内容外,还可以提取签章的图片,研究了好久,特此记录一下。 /** * 获取pdf签名图片信息 * @...
  • itext 给pdf文件签名

    2019-08-03 01:16:51
    NULL 博文链接:https://swordshadow.iteye.com/blog/1980063
  • 本文以Java代码演示如何获取PDF文档中的数字签名信息,包括签名人、签名位置、日期、原因、联系方式、签名在文档中的坐标等等。程序环境包括:Jdk 1.8.0(版本要求>=1.6.0版本即可)IDEA编辑代码前先导入jar到Java...
  • PDF文件的数字签名的破解

    千次阅读 2019-02-15 21:14:04
    今天遇到一个PDF,不但加了口令,还用了数字签名。口令很多工具都能对付,但是目前还真没什么工具能去除数字签名。 我先把口令去了,现在可以复制内容,可以打印。但是由于数字签名还在,仍然无法进行修改、注释等...
  • 接到这样一个需求,现在有大量的pdf文件按需要去除签名,和文件里的签名图标。pdf包含图标等复杂元素,使用了icepdf操作pdf 2.思路 如果单独只是去除签名,直接就能想到pdf转图片,再将图片合成pdf即可,如果有这个...
  • 数字签名PDF 1.3)可用于验证用户的身份和文档的内容。 它在签名时,保存了有关签名者和文档状态的信息。 签名可以是纯数学的,例如公钥/私钥加密文档摘要,或者它可以是生物识别形式的标识,例如手写签名,指纹...
  • C# 如何移除PDF文档的数字签名

    千次阅读 2016-10-19 16:57:32
    和密码保护一样,数字签名也是保护PDF文档的一种方式,通常添加了数字签名PDF文档只能浏览而不能打印和编辑,那如果我们要打印或编辑的话,首先需要做的就是移除文档内的数字签名。本篇文章的目的在于分享如何使用...
  • 怎样删除pdf文件中需要验证的签名

    千次阅读 2020-12-10 22:20:58
    问题提出: 靠近年底了,要把五六个月以来...含有需要验证的数字签名pdf文件: 在和其他文件合并到一个pdf文件的时候, 会看到感叹号提示: 可以看到,另外一个文件左上角就没有感叹号标识。 这时候,合并之后的pdf
  • 小编在前几天使用一个PDF文件的时候遇到文件中添加的有数字签名,由于数字签名在无法对文件进行修改、注释等操作,但是如果使用别的操作工具会使文件中的数据丢失,这个时候就需要一个好的方法来做,小编已经找到了...
  • PDF文档加密签名处理

    2021-06-08 09:47:10
    可如果加了数字签名怎么办? 建一个空白页,然后插入有签名的文档,再删除空白页,保存即可。 1.以“管理员身份运行”Office Password Remover 汉化版软件 2.选择要解密的word文件 3.点击,红色部分,破解加密...
  • UniPDF-Go专用的PDF UniPDF是Go(golang)的PDF库,具有创建和读取...数字签名验证和签名 CCITTFaxDecode解码和编码支持 JBIG2解码支持 我们的示例存储库https://github.com/unidoc/unipdf-examples中提供了多个示例。
  • 由于个别原创资料采用了的数字签名和数字身份证等PDF的公钥128bit的加密技术,并且提供了加密的公钥数字证书(topsage.pfx),让PDF仅能浏览而不能打印和编辑。此文仅作为把资料打印用途和绿色收藏的目的,讲解PDF...
  • 当iText使用PDfStamperin正常模式操作文档时,它可以(并且经常)重新排列现有的PDF对象.这显然打破了任何现有集成签名的哈希值.此外,必须签名的字节范围也会发生变化.这很可能是你的问题.当iText使用PDfStamperin追加...
  • Wondershare PDFelement是Macdown集到的一款Mac平台的全功能PDF编辑及转换工具,无论是PDF的格式转换还是PDF文件的编辑处理工作,都能轻松胜任,还具备OCR光学文字识别功能,PDF转换功能包括将PDF文件转换成doc文本...
  • OP原始问题的原因,即在用PDFBox加载PDF(用于表单填写)然后保存它之后,这个新PDF无法使用PDFBox签名代码成功签名,已在this answer中详细解释过,短:>定期保存文档时,PDFBox使用交叉引用表进行保存.>如果定期...
  • 用Acrobat无损去除PDF签名

    千次阅读 2020-05-09 10:02:40
    用Acrobat无损去除PDF签名 步骤 先看下有签名的文件。 因为有签名,想在上面进行一些操作都变得很困难。用Acrobat创建一个只有一页的PDF。 点开左边的页面缩略视图,在第一页的缩略视图上右键点击“插入页面”-...
  • 去除PDF文件的数字签名、密码

    万次阅读 2014-10-23 14:55:31
    没时间看纸质的书,工作需要又不得不学习一下专业知识,看看电子书也不错...2、使用“文档->插入页面”,把有数字签名的文档插入到那一页后面。 3、使用“文档->删除页面”,删除第一页,然后保存文档。
  • 之前有小伙伴问我有没有好用的PDF阅读器推荐?所以今天我把市场上知名度较高的PDF阅读器全部测试了一遍,挑出几款我认为好用的分享给大家。看完本文PDF的阅读、批注、编辑、转换、压缩、合并、水印等等各种操作你都...
  • PDF-XChange Editor。专注于PDF电子文档的编辑功能,体积小巧,速度飞快,界面友好,打开PDF文件速度快,具备丰富的配置和功能选项,可以帮助您快速...支持创建,查看,编辑,注释,OCR识别和数字签名PDF文件等等功能。
  • PDF编辑方法,PDF如何去除数字签名

    千次阅读 2019-03-27 16:23:37
    有些人会在PDF文件中添加数字签名,但当PDF文件有数字签名的时候就无法对PDF文件进行编辑、添加等操作。这个时候就需要去除PDF文件中的数字签名了,要怎么做呢,就由我来跟大家分享一下小编我的去除数字签名PDF...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,213
精华内容 1,685
关键字:

删除pdf数字签名