完善主體資料,免費贈送VIP會員!
    * 主體類型
    * 企業名稱
    * 信用代碼
    * 所在行業
    * 企業規模
    * 所在職位
    * 姓名
    * 所在行業
    * 學歷
    * 工作性質
    請先選擇行業
    您還可以選擇以下福利:
    行業福利,領完即止!

    下載app免費領取會員

    NULL

    ad.jpg

    Revit二次開發教程:如何對插件進行雙數字簽名

    發布于:2019-02-18 17:13:05

    網友投稿

    更多

    本文來源:微信公眾號:bimliang   作者:BIMCoder梁老師  更多內容請關注微信公眾號


    今天說說數字簽名這個事情。一般來說公司發布插件產品肯定要對插件進行數字簽名的。之前的文章也提到,Autodesk Revit自2017版開始對插件進行數字簽名認證。

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

    當每次編譯完dll,然后用Revit加載調試時,Revit都會提示“永遠加載”,“加載一次”,“不載入”三種情況。

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

    b. “加載一次”, 一般就是調試的時候常用的情況。

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


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

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

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

    進行簽名前的文件清單:

    1. 證書文件:xxx.pfx

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


    3. signtool及其依賴項:

    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系統里:

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

    把他們復制出來的時候記得也放一個文件夾里,因為signtool.exe是依賴于這些的。


    那么為什么是win10系統,win7可以不?

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

    下載個Win10的SDK里應該也會有上述文件。

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


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

    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

    紅色部分需要全路徑或相對路徑,因為每家sha256的簽名url不同,所以藍色部分填上購買的數字簽名公司對應的時間戳地址。

    本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

    未標題-1.jpg

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

    下一篇:Revit二次開發教程:獲取相交構件及Face重合的判斷

    60acb4e0ef112.png
    主站蜘蛛池模板: 亚洲午夜电影一区二区三区 | 亚洲一区二区三区播放在线| 91精品一区二区三区久久久久| 精品综合一区二区三区| 日韩免费观看一区| 亚洲一区二区三区无码影院| 亚洲电影唐人社一区二区| 国产精品福利区一区二区三区四区 | 一区二区三区日韩| 国产精品无圣光一区二区| 亚洲男人的天堂一区二区| 春暖花开亚洲性无区一区二区| 亚洲国产成人久久综合一区 | 呦系列视频一区二区三区| 色婷婷综合久久久久中文一区二区| 中文字幕久久亚洲一区| 国产伦精品一区二区三区精品| 97精品国产一区二区三区| 日韩中文字幕一区| 国产精品视频一区麻豆| 亚洲日韩国产欧美一区二区三区| 亚洲狠狠狠一区二区三区| 中文字幕一区日韩精品| 亚洲日韩一区二区三区| 日本在线视频一区二区三区| 黑巨人与欧美精品一区| 在线观看精品一区| 无码8090精品久久一区| 国产日韩AV免费无码一区二区三区| 亚洲一区二区三区国产精品| 上原亚衣一区二区在线观看| 国产在线一区二区综合免费视频 | 国产一区二区三区美女| 国产精品无码一区二区三区在| 精品一区二区三区水蜜桃| 国产精品区AV一区二区| 亚洲不卡av不卡一区二区| 日韩精品无码一区二区三区免费| 亚洲丰满熟女一区二区v| 无码一区二区三区中文字幕| 亚洲国产精品一区二区第四页 |