為什麼要對DLL進行簽名

2021-09-28 14:19:08 字數 1817 閱讀 7352

曾經在乙個專案中,要求您為dll建立乙個強名稱,並且為乙個專案建立乙個強名稱,然後編譯專案解決方案開始出現奇怪的編譯錯誤。我去過很多次。面對這些問題時,我有些疑問浮出水面。

讓我們仔細閱讀以下基礎知識。我們將調查以下內容

組裝

加密

雜湊

數字簽名
assembly:

assembly是用於部署,安全性和版本控制的已編譯**庫。exe和dll是不同型別的程式集。它由名稱,文化,版本和公鑰令牌組成。

加密加密是使用演算法將資訊轉換為不可讀的過程,並且只能使用稱為金鑰的特殊資訊將不可讀的資訊轉換為可讀格式。 它們有兩種型別

a) 對稱密碼學

b) 不對稱密碼

讓我們僅關注非對稱密碼,因為對稱密碼是平直的直接密碼。

由於使用了一對稱為私鑰和公鑰的金鑰,非對稱密碼技術為加密和解密資料提供了一種非常安全的機制。

**私鑰絕不應傳遞給另乙個實體。與公鑰相反,它應該被傳遞。**
私鑰由乙個實體持有並被安全鎖定。永遠不要將其傳遞給另乙個實體。公鑰是相反的;您可以將公開金鑰提供給任何要求它的人。

讓我們考慮乙個模擬,蓋茨和史蒂夫希望彼此交流。他們選擇非對稱方式。蓋茨傳送帶有自動數字掛鎖的開啟盒子。該數字掛鎖可以自動關閉,但需要開啟鑰匙。

**開箱=公鑰 數字掛鎖鍵=私鑰**
開啟框被認為是每個人都可以意識到的公鑰。史蒂夫放置訊息並關閉自動開啟的數字掛鎖框。在這裡,用於開啟包裝盒的鑰匙是私鑰。

雜湊:如果在將資料放入框(甚至框和內容)之後更改了資料,該怎麼辦。為了避免加密之後或之前的資料更改,我們使用了稱為雜湊的過程。加密雜湊函式將獲取任意大小的資料塊,並返回固定大小的二進位制資料,稱為雜湊值。如果您以任何方式更改原始資料塊,則計算出的雜湊值也會更改。如果原始資料中的一位被更改,則至少有50%的計算雜湊值的位會更改。如果資料沒有更改,並且您反覆計算雜湊值,則雜湊值將相同。如果複製資料並計算其雜湊值,它將是相同的。

數字簽名:

數字簽名可以證明郵件沒有被修改,並可以證明其作者的身份。

**非對稱加密和雜湊的結合**
這是本主題已涵蓋的兩個主題的必要組合:使用私鑰的非對稱加密和雜湊。通過計算資料雜湊值,然後使用專用非對稱加密金鑰對雜湊值進行加密,可以建立數字簽名。

deep dive已經結束了,讓我們回到表面討論我們真正的目的。

強名是用於唯一標識裝配的技術。它由名稱,版本號,文化,公鑰令牌和數字簽名組成。

強名解決了兩個目的。1. 版本控制 2. 身份驗證。

版本控制解決了稱為「 dll hell」的問題。由於是唯一標識程式集的技術,因此相同的dll名稱可以存在於具有不同版本號的同一資料夾(gac)中。

身份驗證,我們要確保自己成為****的過程。自從我們簽署了程式集以來,就解決了這一問題,這解決了身份驗證問題。

正如我們所討論的,強名稱解決了版本控制和身份驗證的目的,使用強名稱簽名的共享或公共程式集可以在gac(全域性程式集快取)中發布。任何使用我們程式集的人都可以確保他們使用的是正確的版本和程式集,而外部版本未對此進行修改。

強名簽名僅適用於共享或公開集會

強名簽名僅適用於共享或公共大會。如果僅在自己的可執行檔案中使用程式集,則無需使用強名稱對程式集進行簽名。

編譯器將簽名程式集的全名儲存到它正在建立的程式集中

為什麼要對版權進行保護?

對版權進行保護其實也就是我們知道的對著作權進行保護,在法律上對著作權的保護是比較全面的。要是有人侵犯他人的著作權的話,則就要按照規定,承擔相應的責任,那麼你知道為什麼要保護版權嗎?一 我國民事立法的基本原則,維護了公民正當的民事權益,完善了我國智財權的法律制度。版權保 的實施,標誌著文學藝術領域無法...

為什麼要對訊號進行調頻

一般無線裝置的待發射訊號都是低頻的,如果直接用天線發射這種低頻訊號,根據公式 波長 光速 頻率 計算出的天線長度會非常長,可能是2m,可能是十幾公尺,也有可能是將近百公尺,試想一下,你手機的天線 路由器的天線有幾公尺長會是什麼樣子的,太滑稽了。而2.4g訊號和5g訊號需要d天線長度在幾厘公尺到十幾厘...

為什麼要對多執行緒進行加鎖操作呢

可能會發生資料競爭,造成資料錯亂.例子 本來想要的結果n 0,但是執行發現n的值不為0,而且有多種取值.究其原因,是因為多個執行緒之間會發生資料競爭,導致cpu執行緒排程時出現問題,不能夠保證執行緒內執行 的原子操作.我發現string str hello 這一句是必要的,不然它就不會出現n不為0的...