怎样制作数字签名

原创 2006年05月20日 18:16:00

怎样制作数字签名

1、 获得软件发行证书(测试)

一、找到或下载signcode.exe、makecert.exe和cert2spc.exe这三个程序,如果装了VS.NET的话,可以在其目录下找到,或者去微软网上下载也可以的。

二、:创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。

输入makecert -sk lyl -n "CN=johnlya" c:/lyl.cer。

就会在你的C:生成lyl.cer文件。

说明:参数-n指定主题的证书名称。此名称必须符合 X.500 标准。最简单的方法是在双引号中指定此名称,并加上前缀 CN=;例如,"CN=myName"。注意这里的CN必须大写。-sk指定主题的密钥容器位置,该位置包含私钥。如果密钥容器不存在,系统将创建一个。输入makecert -?可以查看其他参数的用法。

三:创建发行者证书 (SPC)。

注意,发行者证书测试工具通过一个或多个 X.509 证书创建发行者证书 (SPC)。Cert2spc.exe 仅用于测试目的。可以从证书颁发机构(如 VeriSign 或 Thawte)获得有效的 SPC。

输入命令:cert2spc c:/lyl.cer c:/lyl.spc,在C:盘生成证书文件。至此,你已经拥有了仅用于测试的软件证书。其实,我们开发的程序或ActiveX控件只要仅用于企业内部,完全可以用这种办法作数字签名,使你的控件可以在浏览器里自动下载,而不必去专门的证书办法机构获得证书。

2、 创建CAB文件

CAB文件是一种WINDOWS的标准压缩格式文件,在网页上发布ActiveX的时候经常使用该压缩格式对文件进行包装,目的是使文件便于在Internet上传输。创建CAB文件的方法有很多,可以压缩工具CABARC.EXE。

也可不使用 CAB 文件而直接签名 DLL 和 OCX。CAB 文件的优势在于压缩,而且如果与 INF 文件一起使用,它可将所有必要的代码绑定在一起。

INF文件如下:

   ; ========================= johnlya.inf ========================

   [version]
   ; version signature (same for both NT and Win95) do not remove
   signature="$johnlya$"
   AdvancedINF=3.0

   [Add.Code]
   johnlya.ocx= johnlya.ocx
   PEGRP32C.DLL = PEGRP32C.DLL
   ; These are the necessary supporting DLLs for MFC 4.2 ActiveX Controls
   mfc42.dll=mfc42.dll
   msvcrt.dll=msvcrt.dll
   olepro32.dll=olepro32.dll
 
   ; thiscab is a keyword which, in this case, means that johnlya.ocx
   ; can be found in the same .cab file as this .inf file
   ; file-win32-x86 is an x86 platform specific identifier
   ; See the ActiveX SDK - ActiveX Controls - Internet Component Download -
   ; Packaging component code for automatic download
 ; needed DLL
  [PEGRP32C.DLL]
  file-win32-x86=thiscab
  FileVersion=5,0,0,0
  DestDir=11
  RegisterServer=yes


   [johnlya.ocx]
   file-win32-x86=thiscab
   ; *** add your controls CLSID here ***
   clsid={D63A6E56-E666-49F2-99B5-D0EFE1B7647F}
   ; Add your ocx's file version here.
   FileVersion=3,0,2,1
   RegisterServer=yes
  
  
   ; dependent DLLs
   [msvcrt.dll]
   ; This is an example of conditional hook. The hook only gets processed
   ; if msvcrt.dll of the specified version is absent on client machine.
   FileVersion=6,0,8168,0
   hook=mfc42installer

   [mfc42.dll]
   FileVersion=6,0,8168,0
   hook=mfc42installer

   [olepro32.dll]
   FileVersion=5,0,4261,0
   hook=mfc42installer
  
    [mfc42installer]
   file-win32-x86=VALUE=http://activex.microsoft.com/controls/vc/mfc42.cab
   ; If dependent DLLs are packaged directly into the above cabinet file
   ; along with an .inf file, specify that .inf file to run as follows:
   ;InfFile=mfc42.inf
   ; The mfc42.cab file actually contains a self extracting executable.
   ; In this case we specify a run= command.
   run=%EXTRACT_DIR%/mfc42.exe

   ; ====================== end of johnlya.inf =====================

然后在命令行模式下输入:

cabarc -s 6144 n johnlya.cab PEGRP32C.DLL johnlya.ocx johnlya.inf

3、 签署文件

在上面打开的dos窗口里,输入如下命令:

signcode /spc c:/lyl.spc /k johnlya -t http://timestamp.verisign.com/scripts/timstamp.dll c:/lyl.cab

至此,已经对成功对lyl.cab文件签名。可以查看文件的属性,查看数字签名。


4、注意一点:对于WINXP需要将Internet/工具/选项/高级里将允许和安装未授权的数字签名选项打上勾!

如何将程序进行数字签名

1.制作私钥文件 2.制作数字证书 3.对程序进行签名认证            大家知道吗?微软发布的具有数字签名的SP2才是正式版本,这是怎么一回事呢?    一、Windows的文件保护功能  ...
  • FrankieWang008
  • FrankieWang008
  • 2013年08月21日 16:16
  • 9297

“数字签名”自己做打造属于自己的在线工具

(因为是在黑客防线手工打下来的,没办法截图,请谅)    现在网络上出现了很多在线工具,特别是一些所谓的"黑客"站点提供大量在线破解工具,用来突破网吧限制,为网友提供方便的同时大大提高了自己的访问量,...
  • galfordGG
  • galfordGG
  • 2005年05月19日 22:32
  • 1501

PDF数字签名之(6.2如何生成公钥)

PDF文档的数字签名功能的设计与所有相关的标准的兼容性 主流的公钥基础设施(PKI)部署在企业和政府的设置。PKI是 集人,政策,程序,硬件,软件,用于创建,分配,管理和 撤销,并使...
  • u014760573
  • u014760573
  • 2016年01月25日 10:45
  • 904

CA证书应用二:制作带数字签名的PDF文档

使用CA证书,制作带数字签名(电子签章)的PDF文档
  • yyfzy
  • yyfzy
  • 2015年07月13日 16:07
  • 3786

制作数字签名

首先要有工具包,包括以下几个软件:makecert.exe  制作cer格式的证书,即X.509证书,同时可以创建私钥cert2spc.exe  将cer格式证书转换成spc格式证书,即PKCS #7...
  • ygq_zl
  • ygq_zl
  • 2006年08月25日 11:48
  • 727

为PE文件添加数字签名

呵呵 楚茗写过一个 给PE文件添加数字签名的小工具 很好用的 用途估计大家都知道的,KIS2009 在一定成度上检查PE文件的数字签名 跟小鱼聊天时他说这个实现非常简单,就是修改一个PE结构中的两个位...
  • chinafe
  • chinafe
  • 2009年08月03日 19:36
  • 3101

win8用命令行禁用数字签名,对win8电脑没有疑难解答的有效

win+x打开命令行管理员模式,输入bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS 之后再输入bcdedit -set TESTSIGNIN...
  • helenie
  • helenie
  • 2016年11月04日 21:05
  • 1564

用AutoIT编写的验证windows下可执行程序(*.exe)的数字签名有效性的自动化脚本

leader要求写一个验证数字签名有效性的程序一开始打算用VC写的,后来发现貌似没办法从可执行程序中取到数字签名的地址后来想到了抓窗口这种不是办法的办法于是便开始学AutoIT啦~ 废话不多说,程序主...
  • sylcrq
  • sylcrq
  • 2010年05月14日 23:21
  • 1547

签名证书、数字签名和数字信封

签名证书 作为文件形式存在的证书一般有这几种格式:   1.带有私钥的证书    由Public Key Cryptography Standards #12,PKCS#12标准定...
  • xuke6677
  • xuke6677
  • 2013年01月18日 11:12
  • 2468

编程实现可执行文件的数字签名验证及证书安装

为何要制作数字签名,请参见我以前的文章 http://dkfdtf.blogbus.com/logs/10896854.html,我最近的一个项目也需要实现自验证功能,狐狸天堂上的金威先生也恰好有这个...
  • dkfdtf
  • dkfdtf
  • 2009年07月14日 22:09
  • 9774
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎样制作数字签名
举报原因:
原因补充:

(最多只允许输入30个字)