完善主體資料,免費(fèi)贈(zèng)送VIP會(huì)員!
      * 主體類型
      * 企業(yè)名稱
      * 信用代碼
      * 所在行業(yè)
      * 企業(yè)規(guī)模
      * 所在職位
      * 姓名
      * 所在行業(yè)
      * 學(xué)歷
      * 工作性質(zhì)
      請先選擇行業(yè)
      您還可以選擇以下福利:
      行業(yè)福利,領(lǐng)完即止!

      下載app免費(fèi)領(lǐng)取會(huì)員

      NULL

      ad.jpg

      Revit二次開發(fā)教程:如何對插件進(jìn)行雙數(shù)字簽名

      發(fā)布于:2019-02-18 17:13:05

      網(wǎng)友投稿

      更多

      本文來源:微信公眾號:bimliang   作者:BIMCoder梁老師  更多內(nèi)容請關(guān)注微信公眾號


      今天說說數(shù)字簽名這個(gè)事情。一般來說公司發(fā)布插件產(chǎn)品肯定要對插件進(jìn)行數(shù)字簽名的。之前的文章也提到,Autodesk Revit自2017版開始對插件進(jìn)行數(shù)字簽名認(rèn)證。

      所謂數(shù)字簽名就是添加到文件的電子安全標(biāo)記。使用它可以驗(yàn)證文件的發(fā)布者以及幫助驗(yàn)證文件自被數(shù)字簽名后是否發(fā)生更改。如果文件沒有有效的數(shù)字簽名,則無法確保該文件確實(shí)來自它所聲稱的源,或者無法確保它在發(fā)布后未被篡改(可能被病毒篡改)。

      當(dāng)每次編譯完dll,然后用Revit加載調(diào)試時(shí),Revit都會(huì)提示“永遠(yuǎn)加載”,“加載一次”,“不載入”三種情況。

      a. 如果你就編譯一次,以后永遠(yuǎn)都不會(huì)編譯了,就選擇“永遠(yuǎn)加載”。這種情況一般是我們從開源社區(qū)下載常用工具代碼,自己編譯dll的情況。比如自己從Github編譯Revit Lookup工具。

      b. “加載一次”, 一般就是調(diào)試的時(shí)候常用的情況。

      c. "不載入",字面意思,不過多解釋。


      那么如果我們購買了數(shù)字簽名證書,該如何對自己的dll進(jìn)行簽名呢?什么是雙數(shù)字簽名?怎么進(jìn)行雙數(shù)字簽名?這都是我需要告知大家的。

      假設(shè)我們已經(jīng)從安全證書公司購買了數(shù)字簽名證書,我們對dll最佳的簽名方式是使用腳本簽名,常用的就是bat腳本。

      雙數(shù)字簽名指的是既對dll進(jìn)行sha1算法簽名,又對其使用sha256簽名。“sha1加密算法的不安全性越來越高,sha1造假成本越來越低,隨即微軟、谷歌等IT巨頭相繼發(fā)布棄用sha1加密算法聲明,第三方認(rèn)證機(jī)構(gòu)自2016年1月1日起,將全面停止簽發(fā)SHA1算法的數(shù)字證書。” SHA1算法被SHA-256所取代,所以我們的插件dll需要雙簽名操作,當(dāng)然你可以只用sha256。

      進(jìn)行簽名前的文件清單:

      1. 證書文件:xxx.pfx

      2. 你的待簽名dll: xxx.dll


      3. signtool及其依賴項(xiàng):

      a. appxpackaging.dll

      b. appxsip.dll

      c. Microsoft.ComparePackage.Lib.dll

      d. Microsoft.Windows.Build.Appx.AppxPackaging.dll.manifest

      e. Microsoft.Windows.Build.Appx.AppxSip.dll.manifest

      f. Microsoft.Windows.Build.Appx.OpcServices.dll.manifest

      g. Microsoft.Windows.Build.Signing.mssign32.dll.manifest

      h. Microsoft.Windows.Build.Signing.wintrust.dll.manifest

      i. mssign32.dll

      j. opcservices.dll

      k.signtool.exe

      l. signtool.exe.manifest

      m. wintrust.dll

      o. wintrust.dll.ini


      以上這些文件上哪里找呢?

      在Win10系統(tǒng)里:

      D:\Windows Kits\10\bin\10.0.17134.0\x86文件夾中

      把他們復(fù)制出來的時(shí)候記得也放一個(gè)文件夾里,因?yàn)閟igntool.exe是依賴于這些的。


      那么為什么是win10系統(tǒng),win7可以不?

      貌似不行唉,版本太低,反正我自己測是簽不了sha256,想了好久。。。

      下載個(gè)Win10的SDK里應(yīng)該也會(huì)有上述文件。

      需要說明的是exe,dll可以雙數(shù)字簽名。msi只能sha1,不能sha256,這是我測試的結(jié)果,歡迎來群里討論。


      最后祭出腳本,方便各位local bat script或者server Jenkins全自動(dòng)化工作:

      SHA1:

      signtool.exe sign /f xxx.pfx /p password /t http://timestamp.verisign.com/scripts/timestamp.dll /v xxx.dll 


      SHA256:

      signtool.exe sign /f xxx.pfx /p password /fd sha256 /tr sign256url /v /as xxx.dll

      紅色部分需要全路徑或相對路徑,因?yàn)槊考襰ha256的簽名url不同,所以藍(lán)色部分填上購買的數(shù)字簽名公司對應(yīng)的時(shí)間戳地址。

      本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

      未標(biāo)題-1.jpg

      上一篇:用了BIM后,圖紙工作量增加了嗎

      下一篇:Revit二次開發(fā)教程:獲取相交構(gòu)件及Face重合的判斷

      主站蜘蛛池模板: 无码毛片一区二区三区视频免费播放| 国产精品资源一区二区| 视频一区二区三区在线观看| 日韩精品一区二区三区在线观看| 免费日本一区二区| 变态调教一区二区三区| 在线观看中文字幕一区| 国产一区二区在线观看视频| 日本人真淫视频一区二区三区| 精品人妻少妇一区二区三区| 亚洲国产成人一区二区精品区| 一区二区中文字幕| 精品人妻少妇一区二区三区不卡| 久久精品国产一区二区三 | 国产精品视频一区二区三区经| 四虎永久在线精品免费一区二区 | 日韩中文字幕精品免费一区| 99精品国产一区二区三区| 一区二区无码免费视频网站 | 精品一区二区三区| 玩弄放荡人妻一区二区三区| 精品国产一区二区三区久久久狼| 内射女校花一区二区三区| 亚洲av无码天堂一区二区三区| 视频一区视频二区日韩专区| 精品成人一区二区三区免费视频| 无码人妻精品一区二区三区9厂| 国产精品视频一区二区三区无码| 视频一区二区中文字幕| 无码人妻精品一区二区三区夜夜嗨| 在线精品自拍亚洲第一区 | 一区二区三区免费视频播放器| 亚洲综合一区二区精品导航| 日本一区视频在线播放| 精品国产不卡一区二区三区| 一区二区三区福利视频免费观看| 亚洲无删减国产精品一区| 精品国产AV一区二区三区| 国产精品一区二区三区99| 在线精品亚洲一区二区| 精品性影院一区二区三区内射|