一、數字簽名怎么簽
(一)Java簽名步驟
1、將applet的class文(wen)件打(da)包成*.jar(可以在命令行中輸(shu)入jar查看(kan)幫助)。
2、首先我們要生成一個(ge)keystore,否則在簽名(ming)的時候報(bao)如(ru)下錯誤:
jarsigner錯(cuo)誤:java.lang.RuntimeException:密鑰庫(ku)裝(zhuang)入(ru):C:Documents and Settingsij2ee.keystore(系統找(zhao)不到指定(ding)的文件。). (這邊的ij2ee是當前(qian)系統用戶名)
生成keystore的(de)語(yu)句:keytool-genkey-alias 別名你可(ke)以自己寫-keyalg RSA-keystore.keystore
下面是會出(chu)現(xian)的數字簽名的一些步驟操作:
輸入keystore密碼:
再(zai)次(ci)輸入新密碼:
您的名字(zi)與姓(xing)氏是什么?
[Unknown]:ij2ee
您的組織單位(wei)名稱是什么?
[Unknown]:mtk
您的組織名稱是什么(me)?
[Unknown]:mtk
您所在的城市或區(qu)域(yu)名稱是什(shen)么?
[Unknown]:suzhou
您所在的州(zhou)或省份名稱(cheng)是(shi)什么?
[Unknown]:jiangsu
該單位的兩字母國家代碼是什(shen)么
[Unknown]:cn
CN=ij2ee,OU=mtk,O=mtk,L=suzhou,ST=jiangsu,C=cn正確(que)嗎?
[否]:y
輸入的主密碼
(如果和keystore密碼相同,按(an)回(hui)車):
這時候會在jdk的bin目(mu)錄(lu)下生成.keystore。把這個.keystore文件移動到C:Documents and Settings當(dang)前(qian)系統(tong)用(yong)戶的目(mu)錄(lu)下面。
3、創建一(yi)個數字證書
在(zai)命令行中輸入如下指令,peakCA和peakCALib自(zi)己起名(ming)字好了(le),3650是(shi)有效(xiao)天數,就(jiu)是(shi)10年左(zuo)右,在(zai)創(chuang)建證(zheng)(zheng)書(shu)的(de)的(de)時(shi)候,需要填寫證(zheng)(zheng)書(shu)的(de)一些信息(xi)和證(zheng)(zheng)書(shu)對應(ying)的(de)私(si)鑰密(mi)碼。
keytool -genkey -alias peakCA -keyalg RSA -keysize 1024 -keystore peakCALib -validity 3650
4、將(jiang)證(zheng)書導出到證(zheng)書文件(jian)中
在(zai)命(ming)令(ling)行中輸入如下(xia)指令(ling),peakCA和(he)peakCALib任(ren)意起名(ming)字,******是輸入的密碼。
keytool -export -alias peakCA -file peakCA.cer-keystore peakCALib-storepass******-rfc
5、授權jar文件,在(zai)命令行中輸入如下(xia)指令
jarsigner -keystore peakCALib myapplet.jar peakCA
(二)office簽名步驟
1、要保護文(wen)檔(dang)內容(rong)的真實性(xing),可(ke)以添加不可(ke)見的數字簽名。已簽名文(wen)檔(dang)的底部有“簽名”按(an)鈕。
2、單擊“文件”選項卡。
3、單擊(ji)“信息”。
4、在“權(quan)限(xian)”下,單擊“保(bao)(bao)護文(wen)檔”、“保(bao)(bao)護工作簿(bu)”或(huo)“保(bao)(bao)護演示文(wen)稿”。
5、單擊“添加數字簽名”。
6、閱讀Word、Excel或PowerPoint中顯(xian)示的消(xiao)息,然后(hou)單擊“確定”。
7、在(zai)“簽(qian)名(ming)”對(dui)話框(kuang)中(zhong)的(de)“簽(qian)署(shu)此文檔的(de)目(mu)的(de)”框(kuang)中(zhong),鍵(jian)入目(mu)的(de)。
8、單擊(ji)“簽名”。
9、在對文(wen)件進行數字簽(qian)名(ming)后,將(jiang)出現“簽(qian)名(ming)”按鈕(niu),并且文(wen)件會變為只讀以防止修改。
二、數字簽名應用例子
假如Alice向Bob傳(chuan)送數(shu)字信(xin)息,為(wei)了保證信(xin)息傳(chuan)送的保密(mi)性、真實性、完(wan)整(zheng)性和(he)不(bu)可否認性,需要對傳(chuan)送的信(xin)息進行數(shu)字加密(mi)和(he)簽名,其傳(chuan)送過程為(wei):
Alice準備好要傳送的數(shu)字信息(明(ming)文);
Alice對數字信息進(jin)行(xing)哈希運算,得到一個信息摘要;
Alice用自(zi)己的私鑰對信息(xi)摘要進行加(jia)密得到Alice的數(shu)字(zi)(zi)簽名,并將其附在數(shu)字(zi)(zi)信息(xi)上(shang);
Alice隨機產生一(yi)個加(jia)密(mi)密(mi)鑰(yao),并(bing)用此密(mi)碼對要發送(song)的信(xin)息進(jin)行(xing)加(jia)密(mi),形成密(mi)文;
Alice用Bob的(de)公鑰對剛(gang)才隨機產(chan)生(sheng)的(de)加(jia)(jia)密(mi)(mi)密(mi)(mi)鑰進行加(jia)(jia)密(mi)(mi),將加(jia)(jia)密(mi)(mi)后的(de)DES密(mi)(mi)鑰連同密(mi)(mi)文一起傳送(song)給Bob;
Bob收到Alice傳送來的(de)密(mi)文和加(jia)(jia)密(mi)過的(de)DES密(mi)鑰(yao),先用自己的(de)私(si)鑰(yao)對加(jia)(jia)密(mi)的(de)DES密(mi)鑰(yao)進行解密(mi),得(de)到Alice隨機產生的(de)加(jia)(jia)密(mi)密(mi)鑰(yao);
Bob然后用隨(sui)機密(mi)鑰(yao)對收(shou)到(dao)(dao)的(de)密(mi)文進行解密(mi),得到(dao)(dao)明(ming)文的(de)數字信(xin)息(xi),然后將隨(sui)機密(mi)鑰(yao)拋棄;
Bob用Alice的公鑰對Alice的數字簽名進(jin)行解密,得到信息(xi)摘要;
Bob用相同的哈希算(suan)法對收到的明(ming)文(wen)再進(jin)行(xing)一次(ci)哈希運算(suan),得到一個(ge)新的信息(xi)摘要;
Bob將收(shou)到(dao)的信息摘要(yao)和(he)新(xin)產(chan)生(sheng)的信息摘要(yao)進行比(bi)較,如(ru)果一致,說明收(shou)到(dao)的信息沒有被修改過。