數字簽名使用了公鑰加密領域的技術;通常定義兩種互補的運算,乙個用於簽名,另乙個用於驗證。
數字簽名是只有資訊的傳送者才能產生的別人無法偽造的一段數字串,這段數字串標明這段資訊是傳送者傳送的。
數字簽名是非對稱金鑰加密技術與數字摘要技術的應用。
數字簽名的作用:
保證資訊傳輸的完整性(數字摘要)確認傳送者的身份認證、防止交易中的抵賴發生(非對稱金鑰加密技術)
數字簽名過程:
數字簽名技術是將摘要資訊用傳送者的私鑰加密,與原文一起傳送給接收者。
接收者只有用傳送者的公鑰才能解密被加密的摘要資訊,然後用hash函式對收到的原文產生乙個摘要資訊,與解密的摘要資訊對比。如果相同,則說明收到的資訊是完整的,在傳輸過程中沒有被修改,否則說明資訊被修改過,因此數字簽名能夠驗證資訊的完整性。
數字簽名主要用於驗證被籤資料在傳輸過程中是否被篡改包含加密演算法(encryption)和摘要演算法(digest)摘要演算法包括md族和sha族,特點是變長輸入,定長輸出,輸出即為目標資料的摘要加密使用rsa非對稱演算法,包括公鑰和私鑰,私鑰對訊息(message)進行加密,公鑰對資料和簽名進行解密
利用雜湊演算法生成摘要。
sha1會生成160bit(20位元組)的hash值;openssl還支援sha224, sha256, sha384, sha512, md4, md5等演算法
填充hash值
填充值加在生成的hash值之前,openssl中預設是pkcs1。
填充後的摘要長度等於訊息長度。
利用私鑰進行簽名。
利用公鑰進行驗籤。
移除padding
得到的hash值對比訊息的hash值
java數字簽名與驗籤 隨機串等操作
數字簽名 又稱公鑰數字簽名 電子簽章等 是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,用於鑑別數字資訊的方法。一套數字簽名通常定義兩種互補的運算,乙個用於簽名,另乙個用於驗證。數字簽名,就是只有資訊的傳送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對資訊的傳送者傳...
基於Rsa sha256的數字簽名與驗籤
移動mv openssl 1.1.0l.tar.gz usr local 解壓tar xzvf openssl 1.1.0l.tar.gz 進入解壓目錄 cd usr local openssl 1.1.0l 輸入命令 config make make install 檢視版本,出現版本資訊就說明安...
openssl RSA簽名和驗籤
1 近期除錯的乙個客戶端,為了防止介面請求被劫持 篡改,需通過證書對請求資料進行簽名操作,來確保請求資料的完整性 要用私鑰對資料進行rsa簽名,用的sha256withrsa,然後使用 base64 封裝簽名結果,將資料傳送到伺服器,伺服器對資料進行驗籤。2 針對伺服器返回結果資料,客戶端需要進行驗...