跳到主要內容

憑證與電子簽章簡略說明

電子簽章 & 憑證 聽起來好像很玄,但那是什麼東東? 又有什麼用呢? 讓我們繼續看下去..


電子簽章:
     是以PKI (Public Key Infrastructure)技術為基礎的數位簽章方式,裡面要包含了 非對稱演算法、雜湊演算法、時戳等等,才算完整的電子簽章。非對稱演算法是以 RSA 最為代表,在其一開始產生兩個極大數字,稱為 "金鑰對",彼此無法互導,而是使用第一把金鑰(私鑰)對資料加密,而透過第二把金鑰(公鑰)來進行解密,私鑰由使用者自行保管對電子文件做簽署(即簽章的動作),而透過第三者機構所留存的公鑰來對文件加以解密驗證(即為驗章的動作),確認是由簽署者所簽署,達到其 "不可否認性"。


憑證(Certificate):
    簽章驗證由第三者機構扮演的憑證中心(CA)為使用者簽署一張包含使用者基本資料、使用者公開金鑰、憑證有效日期、憑證產生製造日期 等資料之數位憑證,用來驗證使用者所簽署之簽章。放置使用者公鑰之憑證,可以隨時流通在外,讓任何人都可以驗證簽署者的簽章。在這樣的架構下,就要先檢驗簽章本身是否「有效」,除了驗證簽章為該憑證所有人所簽署外,還需要要驗證憑證的有效性,包含檢驗憑證是否是「合法」憑證、憑證有沒有過期、憑證是否有效等。


電子簽章文件格式(PKCS#7 & XML Signature):
    在簽署的人簽章動作結束後,要把原始資料與簽章資料產生一份特殊格式的文件,並要能讓外部的人容易取得,以供流通用。目前最常用的是由「RSA組織」定義的「PKCS#7」格式與「W3C」定義的「XML Signature」格式。PKCS #7 是較早被發行的安全文件格式,因此「PKCS#7」也是目前最常被使用的格式。

PS. 可參考 http://www.cc.ntu.edu.tw/chinese/epaper/20070620_1011.htm


留言

這個網誌中的熱門文章

C# 中 List 複製內容到另一個 List 的幾種方法

簡單又實用 ^ ^ * 第一種透過 .ToList( ) 方法:  List<string> List1 = new List<string>();  List<string> List2 = new List<string>();  List1.Add("A");  List1.Add("B");  List1.Add("C");  List1.Add("D"); List2 = List1.ToList( ); * 第二種方式在建立物件時複製前一個 List  List<string> List1 = new List<string>();  List1.Add("A");  List1.Add("B");  List1.Add("C");  List1.Add("D"); List<string> List2 = new List<string>(List1); * 第三種方法新的List 中使用 AddRange( ) 方法  List<string> List1 = new List<string>();  List<string> List2 = new List<string>();  List1.Add("A");  List1.Add("B");  List1.Add("C");  List1.Add("D"); List2.AddRange(List1); 另可使用 List1.GetRange(Start, End) 來複製不固定大小(但不包含End)的內容

無效的回傳或回呼引數。已在組態中使用 或在網頁中使用 <%@ Page EnableEventValidation="true" %> 啟用事件驗證

寫手機網頁 使用 Client 端的 jquery mobile 時 button 都會比較長,但改用 asp::Button 時發現按鈕大小卻變了,W3C 建議使用 jquery mobile Button 時,儘量使用<a href="#" data-role="button" > ,因此改用 asp::LinkButton 後果然解決了 Button 長度問題,只可惜按下去後,依然有點淚流滿面如下。後來拜求 google 大大,找到了原因及解法如下: 開啓了資料回傳安全驗證功能(EnableEventValidation 為 true),導致錯誤訊息產生。如果必須要驗證資料,則必須使用 ClientScriptManager.RegisterForEventValidation 註冊控制項或直接在頁面.aspx上端 <%Page ... EnableEventValidation = "false"> ,那如果全部頁面都不想驗證,那請在 web.config 下找到 <configuration>      <system.web>       <pages  enableEventValidation ="false" >        ....       </page>       .... </configuration> 嗯  博大精深  ^^ 收工回家去............................

JQUERY 中使用 val( ) 或 text( ) 來改變內容

就字眼看來兩者差別不太... 簡單的說 TextBox 利用 val( ),而其它的控制項元件則用 text( ) 底下範例可跑跑看或ID 對調實驗,很快就看出差別了... HTML: <input type="text" id="txtinupt" value="TEXTBOX"/> <label id="lblid">LABEL</label> <button onclick="TestFunc()">OK</button> JS: function TestFunc(){   $('#lblid').text("12345")   $('#txtinput').val("99999");   $('#lblid').focus();   console.log('Function End') }