關於數字簽名基礎知識

2021-09-01 11:05:40 字數 1645 閱讀 6176

1.訊息摘要

public class messagedigestexample    

}

2.私鑰加密

/**  

* 此例子是對乙個字串資訊,用乙個私鑰(key)加密,然後在用該私鑰解密,驗證是否一致

* 私鑰加密,是對稱加密

* 使用對稱演算法。比如:a用乙個金鑰對乙個檔案加密,而b讀取這個檔案的話,則需要和a一樣的金鑰,雙方共享一

* 個私鑰(而在web環境下,私鑰在傳遞時容易被偵聽)

*

* 附:主要對稱演算法有:des(實際金鑰只用到56 位)

* aes(支援三種金鑰長度:128、192、256位),通常首先128位,其他的還有desede等

*/

public static void main(string args) throws exception

3.公鑰加密

/**  

* 此例子是乙個公鑰加密例子,cipher類使用keypairgenerator(顧名思義:一對鑰匙生成器)生成的公鑰和私鑰

*

* 公鑰加密也叫不對稱加密,不對稱演算法使用一對金鑰對,乙個公鑰,乙個私鑰,使用公鑰加密的資料,只有私鑰能

* 解開(可用於加密);同時,使用私鑰加密的資料,只有公鑰能解開(簽名)。但是速度很慢(比私鑰加密慢100到

* 1000倍),公鑰的主要演算法有rsa,還包括blowfish,diffie-helman 等

*/

public static void main(string args) throws exception

4.數字簽名

/**  

* 此例子是數字簽名的例子,使用rsa私鑰對訊息摘要(這裡指的是原始資料)進行簽名,然後使用公鑰驗證簽名

* a通過使用b的公鑰加密資料後發給b,b利用b的私鑰解密就得到了需要的資料(進過b公鑰加密的資料只有b的私鑰能夠

* 解開,但c可以使用b的公鑰加密乙份資料發給b,這樣一來,問題來了,b收到的資料到 底是a發過來的還是c發過來的呢)

* 由於私鑰是唯一的,那麼a就可以利用a自己的私鑰進行加密,然後b再利用a的公鑰來解密,就可以確定:一定是a的消

* 息,數字簽名的原理就基於此

* 總結:a想將目標資料傳給b,此時a需要準備1和2兩部分

* 1:a使用b的公鑰將原始資訊加密,以起到保密作用

* 2:a使用a的私鑰將原始資訊的摘要進行簽名,以起到接收方b確定是a發過來的作用(a用a的私鑰對目標資料的摘要進行籤

* 名,然後傳給b,同時,c用c的私鑰對任意資訊進行簽名也傳給b,b想接受的是a的資料(比如說乙個轉帳請求),於是b

* 就通過a的公鑰對接受到的兩個資訊進行解密,解開的就是a(a的公鑰能且只能解開a的私鑰加密的資料))

*/

public static void main(string args) throws exception else

} catch (signatureexception e)

}

證書 1 數字簽名基礎知識

一 數字加密技術 1 單鑰密碼體制 對稱密碼體制 指加密金鑰和解密金鑰為同一金鑰的密碼體制,因此通訊雙方必須共同持有該金鑰。des aes是一種對稱密碼體制 2 雙鑰密碼體制 非對稱密碼體制 公開金鑰密碼體制 指加密金鑰和解密金鑰為兩個不同金鑰的密碼體制 這兩個金鑰之間存在著互相依存關係,即其中任乙...

證書 1 數字簽名基礎知識

一 數字加密技術 1 單鑰密碼體制 對稱密碼體制 指加密金鑰和解密金鑰為同一金鑰的密碼體制,因此通訊雙方必須共同持有該金鑰。des aes是一種對稱密碼體制 2 雙鑰密碼體制 非對稱密碼體制 公開金鑰密碼體制 指加密金鑰和解密金鑰為兩個不同金鑰的密碼體制 這兩個金鑰之間存在著互相依存關係,即其中任乙...

關於Android數字簽名

android通過數字簽名來標識應用程式的作者和在應用程式之間建立信任關係,不是用來決定終端使用者可以安裝哪些應用程式。這個數字簽名由應用程式的作者完成,並不需要權威的數字證書簽名機構認證,它只是用來讓應用程式包自我認證的。數字簽名的兩種模式 我們都知道android系統不會安裝執行任何一款未經數字...