精华内容
下载资源
问答
  • 最近看了某位仁兄的给程序添加数字签名的delphi代码,其中里面的文件流的使用让人感觉很高深,其实还有一种更加简单的方法,下面是我修改后的代码: function AddDigiSignFromFile(const FormFile, To...

    最近看了某位仁兄的给程序添加数字签名的delphi代码,其中里面的文件流的使用让人感觉很高深,其实还有一种更加简单的方法,下面是我修改后的代码:

    原来的代码如下:

    其实那个ReadHexDZ函数没有什么必要,把整型以一个一个字节的形式读出来,然后连接起来又转换为整型,直接以整型的形式去读不就行了?不理解作者的意图-_-!。然后每次用ReadHexDZ都要打开一次文件,效率不高,其实完全可以打开一次文件做完所有的事。这只是我的一点分析,如有不足的地方还请指正。

    复制数字签名以后这个程序的“属性”里面就会出现“数字签名”的选项卡,但是这种靠复制其它程序数字签名的方法是有问题的,因为这个不是程序本身的数字签名,所以即使复制了数字签名也会验证失败。Windows也会提示这个数字签名无效。所以这个只能骗过一些不知情的用户,对于有经验的用户这个反而说明了这个程序更加有问题。

    展开全文
  • 在VS安装后发现路径**VC7/Common7/Tools/Bin/下有许多小工具。...Signtool.exe ---文件签名工具4。chktrust.exe 检查签署证书后的ocx是否正确 建立自己的根证书:makecert -sk myPK -ss myName -n "CN=S

    在VS安装后发现路径**VC7/Common7/Tools/Bin/下有许多小工具。

    1。Makecert.exe ---证书创建工具
    2。Cert2Spc.exe ---发行者证书测试工具
    3。Signtool.exe ---文件签名工具
    4。chktrust.exe 检查签署证书后的ocx是否正确

     

    建立自己的根证书:
    makecert -sk myPK -ss myName -n "CN=SharpSoft" -r c:/my.cer
    sk-表示主题的密钥容器位置,ss-主题的证书存储名称, n-证书颁发对象,r-证书存储位置;
    如果你需要导出私钥文件,请不要使用sk,而换作s,

    eg:makecert -ss myName -n "CN=SharpSoft" -sv c:/my.pvk -r c:/my.cer
    建立自根跟证书授权的子证书:
    makecert -sk "myPK" -is myName -n "CN=SharpSoft" -$ commercial -ic c:/my.cer c:/31.cer
    sk-表示主题的密钥容器位置,is-颁发者的证书存储名称, n-证书颁发对象,ic-颁发者的证书存储位置,-$-授权范围(用于代码签名);


    使用Cert2Spc生成spc发行者证书(可选):
    cert2spc c:/31.cer c:/31.spc


    使用signtool为你的程序,库或cab包签名:
    双击signtool,或在控制台键入signtool signwizard,启动签名向导。在第三步选择“自定义选项”,第四步选择“从文件选择”选择31.spc或31.cer,第五步选择“CSP中的私钥”,在密钥容器中选择我们定义的myPK,其他步骤默认即可,如果想添加时间戳,请在时间戳服务器地址上键入:(免费时间戳认证)http: //timestamp.verisign.com/scripts/timstamp.dll
    完成后,观察你所签名的文件属性,应该已经添加数字签名项。

     

    好了,以上就给一个程序集添加了你自己的数字签名。

    如果你的程序部署以后,需要在你的主程序中判断程序集的数字签名的时候,该怎么办呢?

    .Net的类库中提供了System.Security.Cryptography.X509Certificates命名空间,里面有很多类可以操作数字签名。

    其中最常用的就是X509Certificate2和X509Certificate2UI了,他们分别是获取数字签名的信息和用对话框显示这些信息。

    注意,X509Certificate2UI类在system.security.dll文件中,需要添加引用这个文件。

    简单的示例代码如下:

    1.             string Certificate = @"d:/ClassLibrary1.dll";
    2.             X509Certificate2 cert = new X509Certificate2(Certificate);
    3.             Console.WriteLine(cert.Subject);
    4.             Console.WriteLine(cert.SerialNumber);
    5.             X509Certificate2UI.DisplayCertificate(cert);

     

    展开全文
  • 添加数字签名前 添加正规数字签名后 数字签名相关文件的后缀 .pfx一定包含或可以转换为所有文件,.pem可以包含或可以转换为所有文件但不一定全部包含或可以转换为所有文件,证书和公钥通常包含在同一个文件中,...

    工具链接

    废话不说,先上图。

    添加数字签名前

    添加正规数字签名后


    数字签名相关文件的后缀

    .pfx一定包含或可以转换为所有文件,.pem可以包含或可以转换为所有文件但不一定全部包含或可以转换为所有文件,证书和公钥通常包含在同一个文件中,.crt和.cer是同一个文件在不同平台上的扩展名。

    公钥:.key、.crt、.cer(.crt和.cer同时包含证书和公钥)

    证书:.crt、.cer(.crt和.cer同时包含证书和公钥)

    私钥:.key、.pvk


    数字签名文件作用

    希望被特定人员解密,其他人无法篡改被保护的内容,改了也会被发现[用于加密传输]:

    例如我给A发一封邮件,但不想让别人更改,我可以用A的打开的锁[公钥]来锁定,而A想验证时,拿他的钥匙[私钥]来解密。

    不希望被任何一个人解密[用于版权认证]:

    例如我写了一个软件,B黑客在软件中加入了病毒,我不想让被篡改有病毒的软件流行,我可以使用私钥[在这里也作为一把没有钥匙的锁]来加密软件,任何一个人篡改后数字签名[我的]都会消失或被替换,用户可以甄别出这是不是我发布的原版软件。


    格式之间的转换

    1. 首先你要有一个数字签名打包文件[.pfx],这个需要申请。本文以ziyuanxiaozhan@outlook.com.pfx为例。
    2. 其次双击安装,注意将“标志此密钥为可导出的密钥(M)。这将允许你在稍后备份和传输密钥。”前面的选择框选中。
    3. 然后在蓝奏云下载工具。
    4. 提取.cer
      使用“数字签名工具箱”中的“certmgr.exe”,选中证书,点击导出,选择“不,不要导出私钥”,选择导出位置和文件名。
    5. 以下内容全部使用OpenSSL[Windows-64 bit].rar中的OpenSSL-Win64\bin\openssl.exe来操作。
    6. 将.pfx文件复制到“bin”文件夹中。
    7. 提取.pem[同时含有证书和密钥](请输入3次密码,每次输入后回车,第一次是密码,第二次是为.pem设置密码,第三次是验证)
      键入或修改后粘贴以下代码,其中文件须替换为自己的文件。
      pkcs12 -in ziyuanxiaozhan@outlook.com.pfx -out ziyuanxiaozhan@outlook.com.pem
    8. 提取.spc[关键,最终签名使用证书](.pem转.spc)

      crl2pkcs7 -nocrl -certfile ziyuanxiaozhan@outlook.com.pem -outform der -out ziyuanxiaozhan@outlook.com.spc
    9. 提取.crt(.cer转.crt,推荐)

      x509 -inform DER -in ziyuanxiaozhan@outlook.com.cer -out ziyuanxiaozhan@outlook.com.crt



      提取.crt(.pem转.crt,不推荐)

      x509 -inform PEM -in ziyuanxiaozhan@outlook.com.pem -out ziyuanxiaozhan@outlook.com.crt
    10. 提取.key[所有密钥](没必要提取,不常用。)

      pkcs12 -in ziyuanxiaozhan@outlook.com.pfx -nodes -out ziyuanxiaozhan@outlook.com_siyao.key
    11. 提取.key[公钥&证书]

      pkcs12 -in ziyuanxiaozhan@outlook.com.pfx -nokeys -nodes -out ziyuanxiaozhan@outlook.com_siyao.key
    12. 提取.key[私钥](没必要提取,不常用。)

      pkcs12 -in ziyuanxiaozhan@outlook.com.pfx -nocerts -nodes -out ziyuanxiaozhan@outlook.com_siyao.key
    13. 提取.pvk[关键,提取加密私钥](.pem转.pvk)

      rsa -in ziyuanxiaozhan@outlook.com.pem -outform pvk -pvk-strong -out ziyuanxiaozhan@outlook.com.pvk
      
    14. 其实很好理解,“ -nokeys”就是不要私钥,“nocerts”就是不要证书[包含公钥]。


    给软件添加数字签名

    1. 解压“数字签名工具箱.rar”。
    2. 打开SignTool\signcode.exe。
    3. 单击下一步。
    4. 打开一个文件。
    5. 选择自定义,下一步。
    6. 单击“从文件选择”,选择密钥,下一步。
    7. 浏览密钥文件,选择.pvk文件,键入密码。
    8. 下一个随便选,sha1更安全,但我习惯用MD5。
    9. 只有签名证书,没有其他证书。
    10. 不用填。
    11. 勾选时间戳,时间戳在证书有效期内,证书即使过期也依然可信。在这里我提供一个免费的时间戳服务器URL:
      http://timestamp.comodoca.com/
    12. 完成,确定。

    大功告成。

    展开全文
  • 数字签名添加的小程序.....................帮助大家
  • 数字签名添加

    2012-08-08 10:38:15
    可以应用程序添加数字签名的一段代码,自己看看
  • 这篇文章将介绍如何在Java应用程序PDF文档添加数字签名。 使用工具: Free Spire.PDF for JAVA 步骤: 1.创建一个Java project,并添加一个class SignPDF.JAVA 2.下载Free Spire.PDF for JAVA包并解压缩,...

    这篇文章将介绍如何在Java应用程序中给PDF文档添加数字签名。

    使用工具:

    Free Spire.PDF for JAVA

    步骤:

    1.创建一个Java project,并添加一个class SignPDF.JAVA

    2.下载Free Spire.PDF for JAVA并解压缩,然后从lib文件夹下,导入Spire.Pdf.jar包和Spire.Common.jar包到程序中

    3.SignPDF.JAVA中添加代码:

    import com.spire.ms.System.DateTime;
    import com.spire.pdf.FileFormat;
    import com.spire.pdf.PdfDocument;
    import com.spire.pdf.PdfPageBase;
    import com.spire.pdf.graphics.PdfImage;
    import com.spire.pdf.security.GraphicMode;
    import com.spire.pdf.security.PdfCertificate;
    import com.spire.pdf.security.PdfCertificationFlags;
    import com.spire.pdf.security.PdfSignature;
    import java.awt.geom.Rectangle2D;
    
    public class SignPDF {
        public static void main(String[] args){
            //加载PDF文档并获取第一页
            PdfDocument doc = new PdfDocument();
            doc.loadFromFile("Input.pdf");
            PdfPageBase page = doc.getPages().get(0);
    
            Rectangle2D.Float rec = new Rectangle2D.Float(100, 450, 310, 100);
    
            //Load pfx文件
            PdfCertificate certificate = new PdfCertificate("gary.pfx", "e-iceblue");
    
            //添加数字签名
            PdfSignature signature = new PdfSignature(doc, page, certificate, "signature1", rec);
    
            //设置签名详细信息
            PdfImage img = PdfImage.fromFile("E-iceblueLogo.png");
            signature.setSignImageSource(img);
            signature.setNameLabel("Signer:  ");
            signature.setName("Gary");
            signature.setContactInfoLabel("ContactInfo:  ");
            signature.setContactInfo("support@e-iceblue.com");
            signature.setDateLabel("Date:  ");
            signature.setDate(DateTime.getToday());
            signature.setLocationInfoLabel("Location:  ");
            signature.setLocationInfo("Chengdu");
            signature.setReasonLabel("Reason:  ");
            signature.setReason("The certificate of this document.");
            signature.setDistinguishedNameLabel("DL:  ");
            signature.setDistinguishedName(signature.getCertificate().get_IssuerName().getName());
            signature.setGraphicMode(GraphicMode.Sign_Image_And_Sign_Detail);
            signature.setDocumentPermissions(PdfCertificationFlags.Allow_Form_Fill);
            signature.setCertificated(true);
    
            //保存文件
            doc.saveToFile("SimpleSign.pdf", FileFormat.PDF);
        }
    }
    

    结果文件:

     

    展开全文
  • exe程序 制作数字签名

    千次阅读 2016-05-31 09:53:42
    1. 购买或自己创立一个的数字签名证书文件。 有工具软件可以制作数字签名证书,比如openssl,但自签的,在别人的机器上,回出现签名无法校验的问题。除非人家信任,否则人家不会安装你的证书。 2. 用工具软件对exe...
  • 怎么PDF添加数字签名

    千次阅读 2019-06-28 16:55:11
    现在有了PDF文档签名证书,,其强大的安全性、来源的可靠性以及不可被随意纂改的特点,让机密文件在通过网络传递传阅时有了更安全的保障,使得政府、企事业单位之间能方便、安全和可靠地实现PDF电子文件交换、电子...
  • 原因:Dscaler的程序所调用的64位驱动不带数字签名,而MS自从Vista开始在64位系统加载内核驱动要强制签名了。 解决方案:自己伪造签名。 过程: 1,打开系统的testsigning模式,使得非权威CA发放的签名可以使
  • 易语言程序的误杀问题一直是个比较操蛋的问题,而这一款数字签名添加器可能会为您解决一部分的误杀问题。它集成了微软、江民、瑞星甚至360等软件厂商的数字签名。经过我的测试,免杀成功率可以达到99%,有此问题的人...
  • 以下内容通过C#及VB.NET代介绍如何Excel文档添加数字签名,以及删除Excel文档中已有的数字签名。工具使用最近发布的Spire.XLS for .NET 版本10.11.2,可在官网下载包,或者通过Nuget搜索下载;编辑代码前,注意先...
  • 以PDF格式保存的电子交易文件或合同,即使具有数字签名,仍然不能完全保证该...这篇将介绍如何使用.NET PDF组件Spire.PDF for .NET在C#应用程序PDF文档添加数字签名并打上时间戳(注意这里的时间戳必须符合RFC ...
  • 添加数字签名教程

    千次阅读 2014-08-13 23:00:09
    原文: 1、生成证书实例:用cmd打开makecert.exe...Windows、microsoft、微软、三处可自定,Windows指签名人姓名、microsoft指电子邮件地址,具体自己改 回车出现创建私钥密码,直接点确定就是不用密码保护,
  • 如何将程序进行数字签名

    万次阅读 2013-08-21 16:16:26
    微软发布的具有数字签名的SP2才是正式版本,这是怎么一回事呢?   一、Windows的文件保护功能   在Windows 2000以前的Windows版本中,安装操作系统之外的软件,可能会覆盖掉一些共享的系统文件,例如动态链接库...
  • 数字签名添加器加强版,可以手动或者自动添加各种杀毒软件和程序数字签名
  • 在设置文档内容保护的方法中除了对文档加密添加水印外应用数字签名也是一种有效防伪手段数字签名的文件很容易验证并且具有较高的权威性和可信...文章中将通过Java程序来介绍添加数字签名到PDF文档以及验证签名是否有效...
  • 在PDF文档中,有可直接添加或验证数字签名的功能方法,下面的文章中,将通过Java程序来介绍添加数字签名到PDF文档,以及验证签名是否有效。 使用工具:Spire.PDF for Java Jar文件获取及导入方法: 方法1:可通过...
  • signtool.exe 对exe程序进行数字签名

    万次阅读 2016-05-31 10:28:14
    signtool.exe是微软的数字签名制作工具,只能制作windows平台的签名, 本使用指南演示如何使用 WoSign微软代码签名证书 来Windows平台代码签名,签名工具为WDK自带的签名工具软件 SignTool.exe,此签名...
  • 本文介绍一些windows驱动程序数字签名的相关知识,包括如何签名,如何禁用数字签名
  • 摘要 阅读本文并探索 - 如何突破Web程序无状态性这个让人抓狂的... 本文介绍在Web程序中使用数字签名所遇到的特殊困难和解决方法,并出一个超简单但相当实用的DEMO。 DEMO程序的效果 让我们先来看看实现之后的效果。
  • NSIS 打包完成之后添加数字签名

    千次阅读 2018-04-25 18:40:55
    !define OutFileSignSHA1 ". \CodeSign \SignTool sign /f . \CodeSign ...脚本完成后执行安装包的数字签名 !finalize ' ${OutFileSignSHA1} "%1" ' !finalize ' ${OutFileSignSHA256} "%1" '
  • 在今年的黑帽大会上,国外的一个安全研究员展示了如何通过Windows的数字签名bypass对恶意程序代码的检测。下载大会的该演讲的ppt大概看了一下,报告分为两部分,第一部分展示数字签名的的校验“漏洞”,第二部分展示...
  • 搞过SmartPhone应用程序汉化的朋友可能都遇到过这样的问题:对程序的修改达到一定程度后,用SignCode会加不进签名。网上有人写了一个叫SignFix的程序,声称可以碰运气解决这个问题,但治标不治本,修改量大了还是...
  • Python指定文件打上数字签名

    千次阅读 2019-11-20 11:45:14
    Python指定文件打上数字签名 数字签名概念: 数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似...
  • VBA Tips:为VBA program添加数字签名

    千次阅读 2012-07-31 23:57:08
    在上一篇文章《VBA Tips:Your first VBA program》中,我们创建了一个最简单的VBA程序,把它保存为.docm文件。现在让我们打开它。假设你的Word 2007为默认设置,那么在打开这个文件后,你将会看到一个Security ...
  • 项目中的一个Applet程序需要添加新的机能,在我修改编译并打包之后,发现原本在Eclipse下可以正常运行的程序,在IE下总是报错“java.lang.SecurityException: Unable to create temporary file” 和 “java.security...
  • 本文将详细介绍什么是数字签名,并采用Signtool工具对EXE文件进行签名,后续深入分析数字签名的格式及PE病毒内容。这些基础性知识不仅和系统安全相关,同样与我们身边常用的软件、文档、操作系统紧密联系,希望这些...
  • 本软件主要用途用来EXE、DLL等文件签署数字签名信息,软件支持自定义个性使用者签名信息和颁发者签名信息,支持打时间戳,快来你的程序添加数字签名吧!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,857
精华内容 19,542
关键字:

给程序添加数字签名