關於簽名時加密失敗錯誤的解決

2021-04-14 22:58:39 字數 1394 閱讀 3667

蒐集自csdn 

有些開源專案,在編譯時會有一大堆的錯誤,其中最常見的是:  

對程式集「***.dll」簽名時加密失敗   --「讀取金鑰檔案「***x.snk」時出錯   --   系統找不到指定的檔案。 」

原因是沒有金鑰檔案,可以使用這樣的方法建立乙個金鑰檔案:  

1,找到簽名工具sn.exe,預設的路徑是:系統盤:/program   files/microsoft   visual   studio   .net   2003/sdk/v1.1/bin;(如果沒有的話通過搜尋sn.exe來查詢)  

2,選擇桌面上的「我的計算機」圖示,右擊,屬性/高階/環境變數/系統變數/新建/系統變數 ,彈出新建系統變數對話方塊,如下設定:  

變數名:path    

變數值:系統盤:/program   files/microsoft   visual   studio   .net   2003/sdk/v1.1/bin;  

3,開啟命令列,執行  

c:  

sn   -k   ***.snk  

會在c盤中生成乙個***.snk檔案,把他剪貼到/***/obj/目錄下。  

編譯就可以通過了。  

或者最直接的方法就是,不要簽名了,找到***專案的assemblyinfo.cs檔案,注釋掉下面一行:  

[assembly:   assemblykeyfileattribute("..***.snk")]  

編譯就可以通過了。  

下面簡單的解釋以下strong   name:  

加密簽名是計算機安全方面的名詞,加密分為對稱和非對稱加密,這裡用的是後者,  

strong   name是進行程式集版本控制和名稱保護的,對乙個程式集進行簽名後就會得到乙個strong   name。strong   name由以下幾部分組成程式集的標識(即它的簡單文字名稱),版本號和區域性資訊(如果提供的話),以及公鑰和數字簽名。strong   name可以確保乙個程式集名稱的唯一性。強名稱是使用相應的私鑰,通過程式集檔案(包含程式集清單的檔案,並因而也包含構成該程式集的所有檔案的名稱和雜湊)生成的。  

需要強調的是,是對程式集的加密和簽名(包括名稱,版本等資訊)得到強名稱,強名稱是唯一的,所以程式集也是唯一的,程式集加密簽名成strong   name需要使用私鑰,這個私鑰由keyname和keyfile組成,其中keyname   是指已經安裝在計算機上的加密服務提供程式(csp)中的金鑰。keyfile   是指包含金鑰的檔案(其實就是.snk檔案)。keyfile通過sn.exe生成。

關於安裝ROS時,更新源失敗的解決方法。

系統 ubuntu 16.04 在安裝ros時,新增ros源和keys sudo sh c echo deb lsb release sc main etc apt sources.list.d ros latest.list sudo apt key adv keyserver hkp recv ...

關於安裝babel時出現的錯誤以及解決辦法

在開始接觸到react之初,安裝babel外掛程式是一件必須要做的事情,但是我在安裝的時候,出現了乙個錯誤,這個錯誤剛開始很頭疼,在網上找了各種解決的辦法,但是一直不行,直到今天,也就是解決安裝錯誤的第三天,臨近崩潰的我,安裝成功了,首先來看下錯誤。error in src index.js mod...

Android 關於RSA 加密和簽名的區別

你只要想 既然是加密,那肯定是不希望別人知道我的訊息,所以只有我才能解密,所以可得出 公鑰負責加密,私鑰負責解密 同理,既然是簽名,那肯定是不希望有人冒充我發訊息,只有我才能發布這個簽名,所以可得出 私鑰負責簽名,公鑰負責驗證。題外話 1 對稱加密加密與解密使用的是同樣的金鑰,所以速度快,但由於需要...