vb.net數(shù)字簽名 數(shù)字簽名代碼實(shí)現(xiàn)

VB.NET 帶有相同簽名定義 如圖這個(gè)錯(cuò)誤在哪?初學(xué)者如是問之。

自己仔細(xì)對(duì)比啊,就是說你同一個(gè)函數(shù)聲明了多次,刪除重復(fù)的就可以了。

創(chuàng)新互聯(lián)建站是一家企業(yè)級(jí)云計(jì)算解決方案提供商,超15年IDC數(shù)據(jù)中心運(yùn)營經(jīng)驗(yàn)。主營GPU顯卡服務(wù)器,站群服務(wù)器,四川電信科技城機(jī)房,海外高防服務(wù)器,成都機(jī)柜租用,動(dòng)態(tài)撥號(hào)VPS,海外云手機(jī),海外云服務(wù)器,海外服務(wù)器租用托管等。

導(dǎo)師出了一個(gè)問題,如何用C++實(shí)現(xiàn)手寫電子簽名。要求是在觸屏上面完成的。。。希望有人可以幫幫我,想想思

寫個(gè)軟畫刷(毛筆樣式(我原來用OPENGL做的))

把繪圖結(jié)果保存成圖片

然后對(duì)整個(gè)圖片進(jìn)行MD5操作

MD5的結(jié)果就是數(shù)字簽名

觸屏只是輸入的問題,其實(shí)和鼠標(biāo)類似的。

.net的問題

Microsoft .NET Framework安全概述

本文概述了微軟.NET Framework安全結(jié)構(gòu),包括基于證據(jù)的安全,基于角色的安全,認(rèn)證和授權(quán)的概念,以及隔離存儲(chǔ),密碼加密和擴(kuò)展性。本文還概述了.NET Framework安全策略帶給開發(fā)人員,管理員和最終用戶的主要好處。本文假定讀者已經(jīng)基本熟悉了.NET Framework通用語言運(yùn)行時(shí)和管理代碼的概念。

引言

目前的安全問題

在今天的軟件環(huán)境中,應(yīng)用程序的來源很多,它們執(zhí)行很多任務(wù)。對(duì)應(yīng)用程序代碼的信任是一個(gè)主要需求,因?yàn)槲覀冋l也不想軟件或信息遭到破壞。給予許可的安全策略不會(huì)允許對(duì)敏感信息的不適當(dāng)?shù)脑L問,或?qū)⒈镜貦C(jī)器暴露給惡意的程序或甚至是有平常錯(cuò)誤的代碼。

過去,安全結(jié)構(gòu)提供了基于用戶帳號(hào)的隔離和訪問控制--在這些限制內(nèi)給予代碼完全訪問權(quán),并假定由特定用戶可運(yùn)行的代碼具有相同的信任度。不幸的是,如果所有程序都代表某用戶運(yùn)行,根據(jù)用戶對(duì)代碼的隔離對(duì)于保護(hù)一個(gè)程序不被其它用戶使用是不夠的。另一種情況,不能被完全信任的代碼經(jīng)常被轉(zhuǎn)移到"沙箱"模型中執(zhí)行,在此代碼運(yùn)行于隔離環(huán)境,而不會(huì)訪問大部分的服務(wù)。

對(duì)今天應(yīng)用程序的成功的安全解決方案必須能強(qiáng)化兩個(gè)安全模型間的平衡。它必須提供對(duì)資源的訪問,以便以完成有用的工作,它需要對(duì)應(yīng)用程序的安全性作細(xì)致的控制以確保代碼被識(shí)別,檢測,并給予合適的安全級(jí)別。.NET Framework就提供了一個(gè)這樣的安全模型。

Microsoft .NET Framework安全解決方案

.NET Framework安全解決方案基于管理代碼的概念,以及由通用語言運(yùn)行時(shí)(CLR)加強(qiáng)的安全規(guī)則。大部分管理代碼需要進(jìn)行驗(yàn)證以確保類型安全及預(yù)先定義好的其它屬性的行為的安全。例如,在驗(yàn)證的代碼中,聲明為接收4字節(jié)值的訪問將拒絕提供8字節(jié)參數(shù)的調(diào)用,因?yàn)椴皇穷愋桶踩?。?yàn)證過程還確保了執(zhí)行流只傳送到已知的位置,如方法入口點(diǎn)--這個(gè)過程去除了跳轉(zhuǎn)到任意位置執(zhí)行的能力。

驗(yàn)證將阻止不是類型安全的代碼執(zhí)行,在它們引起破壞前捕獲很多常見的編程錯(cuò)誤。通常的弱點(diǎn)--如緩存溢出,對(duì)任意內(nèi)存或沒有初始化的內(nèi)存的讀取,對(duì)控件的隨意傳送--都不再可能出現(xiàn)。這將使最終用戶受益,因?yàn)樵谒麄儓?zhí)行代碼前對(duì)其進(jìn)行檢查。這也有益于開發(fā)人員,他們會(huì)發(fā)現(xiàn)很多常見錯(cuò)誤(過去一直在困繞前開發(fā))現(xiàn)在可以查明,并能阻止它們引起破壞。

CLR也能使非管理代碼運(yùn)行,但非管理代碼不能從這些安全措施中受益。特殊的許可與對(duì)非管理代碼的調(diào)用能力相關(guān),一個(gè)強(qiáng)大的安全策略能確保這些許可被恰當(dāng)?shù)亟o予。經(jīng)過很長時(shí)間后,非管理代碼到管理代碼的移植將減少對(duì)非管理代碼的調(diào)用頻率。

微軟.NET Framework安全機(jī)制的構(gòu)件

基于證據(jù)的安全

.NET Framework引入了"基于證據(jù)的安全"的概念。在本質(zhì)上,它是對(duì)安全策略暴露出來問題的解答:

· 組合從哪個(gè)站點(diǎn)獲得?

組合是.NET Framework應(yīng)用程序的構(gòu)件。它們組成了部署,版本控制,重用,激活作用域,安全認(rèn)證的基本單元。應(yīng)用程序的組合是從網(wǎng)站上下載到客戶端的。

· 組合是從哪個(gè)URL獲得的?

安全策略需要明確的地址,而組合是從這個(gè)地址下載的。

· 組合是從哪個(gè)區(qū)獲得的?

區(qū)是基于代碼的位置,對(duì)安全標(biāo)準(zhǔn),如 Internet, intranet和本機(jī)等等,的描述。

· 組合的強(qiáng)名(strong name)是什么?

強(qiáng)名是由組合的創(chuàng)建者提供了密碼強(qiáng)化后的標(biāo)識(shí)符。盡管它沒有提供對(duì)創(chuàng)建者的任何證明,但它唯一標(biāo)識(shí)了組合,確保了組合沒有被破壞過。

根據(jù)對(duì)這些問題的回答,及其它證據(jù),安全策略可以對(duì)賦予組合垢合適許可進(jìn)行計(jì)算。從多種來源可以得到證據(jù),包括CLR,瀏覽器,微軟ASP.NET,及外殼--這依賴于代碼的來源。

策略驅(qū)動(dòng)的信任模型使用代碼證據(jù)

當(dāng)組合被調(diào)入內(nèi)存進(jìn),CLR策略系統(tǒng)通過收集組合的證據(jù)并在策略環(huán)境中對(duì)證據(jù)進(jìn)行計(jì)算,從而決定賦予組合什么樣的許可權(quán)。CLR策略系統(tǒng)然后根據(jù)評(píng)估過的證據(jù)和組合作出的許可請(qǐng)求給予組合一組許可。只有在組合被給予了一組最少的許可后,或組合根本不需要許可權(quán),組合的創(chuàng)建者才能知道組合正確運(yùn)行。通過一個(gè)或多個(gè)對(duì)特定許可的請(qǐng)求,這樣的附加需求可以被傳送室策略系統(tǒng)。

根據(jù)許可請(qǐng)求的類型,策略系統(tǒng)可以進(jìn)一步限制給予組合的許可(刪除不必要的許可)或甚至拒絕將組合裝入內(nèi)存(如果運(yùn)行組合所需的最小許可沒有被策略給予)。在不存在任何許可請(qǐng)求的情況下,組合永遠(yuǎn)不會(huì)被給予多于策略系統(tǒng)將會(huì)給予的許可權(quán)限,請(qǐng)求只是進(jìn)一步限制得到的許可。

安全策略包含了許多代碼組,這些組包含了根據(jù)證據(jù)應(yīng)給予的許可權(quán)。代碼組描述的許可可提供給從特定的安全區(qū)域獲得的組合,或提供給由特定發(fā)行商簽名過的組合,等等。盡管隨CLR發(fā)行了一組默認(rèn)的代碼組(及相關(guān)許可),但管理員可以對(duì)這些CLR安全的進(jìn)行定置,以適合他們的特殊需求。記住,通過定義與證據(jù)相關(guān)的代碼組,任何東西都可以作為證據(jù)提交,只要安全策略可以使用它。

創(chuàng)建許可的的過程涉及到對(duì)證據(jù)的評(píng)估,以確定代碼組適用于哪個(gè)等級(jí):企業(yè),機(jī)器,和用戶。策略按上面順序?qū)@三個(gè)等級(jí)進(jìn)行評(píng)估,然后創(chuàng)建交插了三個(gè)等級(jí)的許可設(shè)置。管理員可以將任何一個(gè)策略等級(jí)標(biāo)記為終結(jié)(final),這樣做應(yīng)付阻止在其它等級(jí)上對(duì)策略做進(jìn)一步評(píng)估。例如,管理員可以在機(jī)器級(jí)別上對(duì)組合終止策略,這樣就會(huì)阻止用戶級(jí)策略對(duì)該組合的應(yīng)用。

一旦策略完成,許可的最初設(shè)置也就創(chuàng)建了。組合通過從三個(gè)方面做出特定的請(qǐng)求可以優(yōu)化這些許可:

· 第一方面是指定為了使組合運(yùn)行它必須擁有的最小許可設(shè)置。如果這些許可沒有給予,那么組合將不同調(diào)入到內(nèi)存,并拋出例外。

· 第二,可以指定一組可選的許可。盡管組合希望存在這些許可,但如果無法獲得這些許可,它仍可以調(diào)入到內(nèi)存。

· 最后,行為特別好的組合實(shí)際上會(huì)拒絕它們所不需的有風(fēng)險(xiǎn)的許可。這三個(gè)優(yōu)化選項(xiàng)是調(diào)入時(shí)作為聲明語句實(shí)現(xiàn)的。

在運(yùn)行時(shí),許可是根據(jù)代碼的執(zhí)行計(jì)算的。右側(cè)的圖總結(jié)了這個(gè)過程的發(fā)生順序。組合A3將它的證據(jù)和來自主機(jī)的證據(jù)提供給策略評(píng)估器。策略評(píng)估器在創(chuàng)建許可時(shí)也要考慮從組合得到的許可請(qǐng)求,"G3"。組合A3由組合A2調(diào)用,而A2又是由組合A1調(diào)用的。當(dāng)組合A3執(zhí)行一個(gè)引發(fā)安全檢查的操作時(shí),A2和A1獲得的許可同樣也要進(jìn)行檢查,以確保它們擁有A3所請(qǐng)求的許可權(quán)限。在這個(gè)過程中,此過程稱為堆棧遍歷(walking),堆棧中每個(gè)組合的許可權(quán)限都要進(jìn)行檢查以確定所給予的權(quán)限設(shè)置是否包含安全檢查所需要的許可。如果堆棧中的每個(gè)組合被給予了安全檢查所需要的許可,調(diào)用將成功。如何任何組合沒有給予所需要的許可,堆棧遍歷過程失敗,安全例外將被拋出。

圖 1.主機(jī)和組合為策略評(píng)估器提供證據(jù),評(píng)估器使用安全策略和許可請(qǐng)求確定組合的許可權(quán)限。應(yīng)用程序中不同運(yùn)行組件的許可權(quán)限然后用于作出授權(quán)決定。

代碼訪問安全堆棧遍歷可以保護(hù)代碼不受攻擊。在精通的攻擊中,惡意代碼欺騙受信任代碼執(zhí)行它獨(dú)自不能運(yùn)行的操作--有效地利用代碼的許可權(quán)限實(shí)現(xiàn)惡意的目的。對(duì)這類攻擊,開發(fā)人員很難進(jìn)行防備--但堆棧遍歷確保了如果涉及到了低級(jí)信任等級(jí)的代碼,有效許可將被減少到信任等級(jí)最低的代碼具有的許可。

結(jié)果,代碼將從源處獲得不同的信任等級(jí),并在適合于特定的代碼執(zhí)行環(huán)境的限制下運(yùn)行。

.NET Framework調(diào)用的"自由"安全性

一些活動(dòng),如讀寫文件,顯示對(duì)話框,讀寫環(huán)境變量,可以通過包含在框架安全構(gòu)架中的.NET Framework方法實(shí)現(xiàn)。這就使.NET Framework能根據(jù)安全策略允許或不允許一個(gè)操作,而不需要程序員做額外的工作。盡管暴露了保護(hù)資源的管理類的創(chuàng)建者在他們的庫中做了明確的安全需求,使用.NET Framework類庫訪問受保護(hù)資源的開發(fā)人員可以自由地利用代碼訪問安全系統(tǒng);他們不必作出明確的安全調(diào)用。

管理員可以通過決定給予哪些許可來優(yōu)化安全策略,然后,依靠.NET Framework處理所有的安全操作。代碼訪問安全能阻止大部分的惡意攻擊,對(duì)代碼的驗(yàn)證減少了緩存溢出和其它會(huì)導(dǎo)致安全攻擊的不期望的行為。因此,應(yīng)用程序和組件生來就受到了保護(hù),它們免于大多數(shù)安全問題的沖擊,而這些安全問題一直困繞著本地代碼的實(shí)現(xiàn)。

基于角色的安全

有時(shí)根據(jù)已認(rèn)證的身份或根據(jù)與代碼執(zhí)行上下文相關(guān)的角色作出認(rèn)證決定是合適的。例如,金融和企業(yè)軟件可以通過評(píng)估角色信息的企業(yè)邏輯加強(qiáng)策略。根據(jù)作出請(qǐng)求的用戶角色可以對(duì)金融交易的數(shù)據(jù)進(jìn)行限制。出納被允許可以處理一定金額的請(qǐng)求,而多于該金額的所有工作需要監(jiān)督人的角色來處理。

身份可以映射到登錄系統(tǒng)的用戶,或由應(yīng)用程序定義。相應(yīng)的原則封裝了身份和其它相關(guān)的角色信息(例如,但并不限于此,用戶的"組"由操作系統(tǒng)定義)。

認(rèn)證和授權(quán)

認(rèn)證是一個(gè)過程,它接收來自用戶的證書,并對(duì)證書的授權(quán)進(jìn)行確認(rèn)。如果證書是有效的,那么用戶就可以說他擁有已認(rèn)證的身份。而授權(quán)的過程是:確定認(rèn)證用戶是否能夠訪問給定的資源。認(rèn)證可通過系統(tǒng)或企業(yè)邏輯來完成,通過某個(gè)API它是或獲得的。認(rèn)證API是完全可擴(kuò)展的,因此開發(fā)人員根據(jù)需要使用自己的企業(yè)邏輯。開發(fā)人員可以對(duì)他們的認(rèn)證需求進(jìn)行編碼,也可以修改底層的認(rèn)證方法而無需對(duì)他們的代碼作太大變化。除了微軟Windows?操作系統(tǒng)身份認(rèn)證外,還有的認(rèn)證方法包括基本HTTP,摘要和 Kerberos,以及微軟Passport和基于窗體的認(rèn)證。這些認(rèn)證方法已經(jīng)完全集成到ASP.NET中了。

在ASP.NET窗體認(rèn)證中,用戶提供證書,并提交窗體。如果應(yīng)用程序簦別請(qǐng)求,系統(tǒng)發(fā)送一個(gè)cookie ,該cookie以某種形式包含包含了證書或包含重新獲得身份的關(guān)鍵字。接下來發(fā)送的請(qǐng)求在頭中包含了cookie,ASP.NET處理程序通過應(yīng)用程序所期望的任何有效方法對(duì)這些請(qǐng)求認(rèn)證和授權(quán)。如果請(qǐng)求沒有經(jīng)過認(rèn)證,HTTP客戶端將用于把請(qǐng)求發(fā)送到認(rèn)證窗體,在那里用戶可能提供信任證書。窗體認(rèn)證有時(shí)用于個(gè)性化--為已知用戶的內(nèi)容進(jìn)行定置。在一些情況下,身份是問題所在而不是認(rèn)證,因此用戶的個(gè)性化信息可以簡單地通過訪問用戶或獲得。

授權(quán)的目的是確定作出請(qǐng)求的身份是否被給予了對(duì)給定資源的訪問權(quán)。ASP.NET提供了兩種類型的授權(quán)服務(wù):文件授權(quán)和URL授權(quán)。文件授權(quán)根據(jù)正在作用的方法和作出請(qǐng)求的身份決定用戶使用于哪個(gè)訪問控制列表。URL授權(quán)是URI名稱空間和不同用戶或角色間的邏輯映射。

隔離存儲(chǔ)

.NET Framework提供了一個(gè)特殊的功能,隔離存儲(chǔ),用于存儲(chǔ)數(shù)據(jù),甚至是當(dāng)不允許對(duì)文件進(jìn)行訪問時(shí)--例如,當(dāng)從Internet下載了一個(gè)管理控件,并運(yùn)行它,為它提供了有限的許可權(quán)但沒有權(quán)力讀寫文件。

隔離存儲(chǔ)是一組新的用于.NET支持的用于本地存儲(chǔ)的類型和方法。在本質(zhì)上,每個(gè)組合可以訪問磁盤上一斷被隔離的存儲(chǔ)空間。它不允許訪問其它數(shù)據(jù),隔離存儲(chǔ)只對(duì)為它創(chuàng)建的組合有效。

隔離存儲(chǔ)也可被應(yīng)用程序用于保存活動(dòng)記錄,保存設(shè)置,或者將狀態(tài)數(shù)據(jù)保存到磁盤上以備將來之用。因?yàn)楦綦x存儲(chǔ)的位置是預(yù)先決定好的,所以隔離存儲(chǔ)為指定唯一存儲(chǔ)空間提供了一種方便的方式,而不需要決定文件路徑。

從本地企業(yè)局域網(wǎng)獲得的代碼具有相似的限制,但更少,它可以訪問大限額的隔離存儲(chǔ)。最后,從受限站點(diǎn)區(qū)域(不信任站點(diǎn))來的代碼沒有對(duì)隔離存儲(chǔ)的訪問權(quán)。

加密

.NET Framework提供了一組加密對(duì)象,它們支持加密算法、數(shù)字簽名、散列、生成隨機(jī)數(shù),是通過眾所周知的運(yùn)算法則實(shí)現(xiàn)的,如RSA, DSA, Rijndael/AES, Triple DES, DES, 和 RC2, 以及MD5, SHA1, SHA-256, SHA-384 和 SHA-512散列算法。同時(shí)還支持在IETF和W3C開發(fā)的XML數(shù)字簽名規(guī)范。.NET Framework使用加密對(duì)象支持內(nèi)部服務(wù)。這些對(duì)象還作為管理代碼提供給需要加密支持的開發(fā)人員。

如何指定安全性?

如果要對(duì)組合運(yùn)行時(shí)的行為進(jìn)行修改,根據(jù)程序員的需要,可以作出聲明式安全或強(qiáng)迫式安全的修改。

聲明式安全

聲明式安全使程序員可以直接在組合代碼的元數(shù)據(jù)中為組合指定安全需求。許可請(qǐng)求和所有其它形式的聲明式安全是在代碼中是作為定置屬性指定的。類,屬性和方法的注釋用于優(yōu)化許可。例如,聲明式安全可用于類的調(diào)用者在調(diào)用方法前檢查調(diào)用者是否被已知地行商簽名過,或有一個(gè)特定的強(qiáng)名。

由于聲明屬性是組合元數(shù)據(jù)的一部分,所以組合的安全需求易于辨別。可以使用工具對(duì)組合進(jìn)行掃描,以發(fā)現(xiàn)哪些方法需要某些許可,哪些方法斷言了某些許可。

當(dāng)被請(qǐng)求的活動(dòng)和許可在編譯時(shí)是知道時(shí),聲明式檢查可作為選擇的解決方案之一。例如,如果方法總是檢查對(duì)C:\temp的寫訪問許可,那么許可檢查就會(huì)從聲明中得到好處。另一方面,如果被請(qǐng)求的具有訪問權(quán)的位置發(fā)生了變化,那么強(qiáng)迫式安全也許是一個(gè)比較好的解決方案。

強(qiáng)迫式安全

強(qiáng)迫式安全直接在代碼中實(shí)現(xiàn)。程序員通過程序采取安全活動(dòng),并且根據(jù)安全堆棧的狀態(tài)決定是給予還是拒絕許可。例如,當(dāng)一個(gè)方法請(qǐng)求訪問一個(gè)特定的文件時(shí),如果調(diào)用者(或方法的任何一個(gè)調(diào)用者)沒有被給予必需的許可權(quán)限,那么請(qǐng)求失敗。因?yàn)閺?qiáng)迫式安全是通過程序?qū)崿F(xiàn)的,所以滿足了動(dòng)態(tài)需求。如果你需要對(duì)一個(gè)特定文件的訪問許可,但該許可還要根據(jù)其它信息發(fā)生變化,那么,強(qiáng)迫式安全就是可選的解決方案。

總結(jié)

.NET Framework安全迎合了這種事實(shí):軟件向多樣化的移動(dòng)組件發(fā)發(fā)展,并根據(jù)這種事實(shí)提供保護(hù)。在一個(gè)細(xì)化的、可擴(kuò)展的策略和許可系統(tǒng)下,用戶能夠運(yùn)行功能強(qiáng)大的代碼,而同時(shí)減少相關(guān)的風(fēng)險(xiǎn)。在沒有運(yùn)行時(shí)對(duì)用戶作出信任決定時(shí),管理員可以在各個(gè)級(jí)別創(chuàng)建強(qiáng)壯的安全策略。策略是完全可定置的。開發(fā)人員能夠集中解決應(yīng)用程序邏輯,而不用關(guān)心核心的安全問題(它由CLR透明地處理)。然而,開發(fā)人員可以在任何時(shí)候擴(kuò)展安全模型。

vb.net生成電子合同簽字保存

契約鎖,電子合同簽字。

VB net 是一種面向?qū)ο蟮木幊陶Z言。 在面向?qū)ο缶幊谭椒ㄖ?,程序由通過動(dòng)作相互交互的各種對(duì)象組成。 對(duì)象可能采取的動(dòng)作稱為方法。 相同類型的對(duì)象被認(rèn)為具有相同的類型,或者更經(jīng)常地被稱為在同一類中。

新聞名稱:vb.net數(shù)字簽名 數(shù)字簽名代碼實(shí)現(xiàn)
文章分享:http://muchs.cn/article44/doscsee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站排名、域名注冊(cè)網(wǎng)站營銷、企業(yè)建站、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)