(壹)Java簽名步驟
1、將applet的class文件打包成*.jar(可以在命令行中輸入jar查看幫助)。
2、首先我們要生成壹個keystore,否則在簽名的時候報如下錯誤:
jarsigner錯誤:java.lang.RuntimeException:密鑰庫裝入:C:DocumentsandSettingsij2ee.keystore(系統找不到指定的文件。).(這邊的ij2ee是當前系統用戶名)
生成keystore的語句:keytool-genkey-alias別名妳可以自己寫-keyalgRSA-keystore.keystore
下面是會出現的數字簽名的壹些步驟操作:
輸入keystore密碼:
再次輸入新密碼:
您的名字與姓氏是什麽?
[Unknown]:ij2ee
您的組織單位名稱是什麽?
[Unknown]:mtk
您的組織名稱是什麽?
[Unknown]:mtk
您所在的城市或區域名稱是什麽?
[Unknown]:suzhou
您所在的州或省份名稱是什麽?
[Unknown]:jiangsu
該單位的兩字母國家代碼是什麽
[Unknown]:cn
CN=ij2ee,OU=mtk,O=mtk,L=suzhou,ST=jiangsu,C=cn正確嗎?
[否]:y
輸入的主密碼
(如果和keystore密碼相同,按回車):
這時候會在jdk的bin目錄下生成.keystore。把這個.keystore文件移動到C:DocumentsandSettings當前系統用戶的目錄下面。
3、創建壹個數字證書
在命令行中輸入如下指令,peakCA和peakCALib自己起名字好了,3650是有效天數,就是10年左右,在創建證書的的時候,需要填寫證書的壹些信息和證書對應的私鑰密碼。
keytool-genkey-aliaspeakCA-keyalgRSA-keysize1024-keystorepeakCALib-validity3650
4、將證書導出到證書文件中
在命令行中輸入如下指令,peakCA和peakCALib任意起名字,******是輸入的密碼。
keytool-export-aliaspeakCA-filepeakCA.cer-keystorepeakCALib-storepass******-rfc
5、授權jar文件,在命令行中輸入如下指令
jarsigner-keystorepeakCALibmyapplet.jarpeakCA
(二)office簽名步驟
1、要保護文檔內容的真實性,可以添加不可見的數字簽名。已簽名文檔的底部有“簽名”按鈕。
2、單擊“文件”選項卡。
3、單擊“信息”。
4、在“權限”下,單擊“保護文檔”、“保護工作簿”或“保護演示文稿”。
5、單擊“添加數字簽名”。
6、閱讀Word、Excel或PowerPoint中顯示的消息,然後單擊“確定”。
7、在“簽名”對話框中的“簽署此文檔的目的”框中,鍵入目的。
8、單擊“簽名”。
9、在對文件進行數字簽名後,將出現“簽名”按鈕,並且文件會變為只讀以防止修改。
二、數字簽名應用例子
假如Alice向Bob傳送數字信息,為了保證信息傳送的保密性、真實性、完整性和不可否認性,需要對傳送的信息進行數字加密和簽名,其傳送過程為:
Alice準備好要傳送的數字信息(明文);
Alice對數字信息進行哈希運算,得到壹個信息摘要;
Alice用自己的私鑰對信息摘要進行加密得到Alice的數字簽名,並將其附在數字信息上;
Alice隨機產生壹個加密密鑰,並用此密碼對要發送的信息進行加密,形成密文;
Alice用Bob的公鑰對剛才隨機產生的加密密鑰進行加密,將加密後的DES密鑰連同密文壹起傳送給Bob;
Bob收到Alice傳送來的密文和加密過的DES密鑰,先用自己的私鑰對加密的DES密鑰進行解密,得到Alice隨機產生的加密密鑰;
Bob然後用隨機密鑰對收到的密文進行解密,得到明文的數字信息,然後將隨機密鑰拋棄;
Bob用Alice的公鑰對Alice的數字簽名進行解密,得到信息摘要;
Bob用相同的哈希算法對收到的明文再進行壹次哈希運算,得到壹個新的信息摘要;
Bob將收到的信息摘要和新產生的信息摘要進行比較,如果壹致,說明收到的信息沒有被修改過。