RSA簽名與驗籤

2021-09-21 14:58:11 字數 1332 閱讀 3040

rsa演算法除了可以進行加解密以外,還可以用來簽名與驗籤。rsa用來進行簽名與驗簽時是使用私鑰進行簽名,公鑰進行驗籤的。這點與加解密的時候剛好相反。加解密時使用公鑰加密,私鑰解密。簽名和驗籤是通過signature物件進行的。

以下是乙個使用signature進行簽名的示例。初始化signature時指定將使用的簽名演算法是md5withrsa,除了該演算法外,signature還支援很多其它的演算法,如sha256withrsa,更多的演算法可以參考官方文件。

/**

* 測試簽名

* @throws exception

*/ @test

public

void testsign() throws exception

/*** 私鑰簽名

* @param data

* @return

* @throws exception

*/ private

byte sign(string data) throws exception

以下是乙個利用signature進行驗籤的示例。驗簽時使用的是公鑰。在初始化signature時使用的是initverify,而簽名時使用的是initsign,這跟cipher進行加解密有點類似。

/**

* 測試公鑰驗籤

* @throws exception

*/ @test

public

void testverifysign() throws exception

完整** 以下是上述示例的完整**。

public

class

rsatest

/*** 私鑰簽名

* @param data

* @return

* @throws exception

*/ private

byte sign(string

data) throws

exception

/*** 測試公鑰驗籤

* @throws exception

*/ @test

public

void

testverifysign() throws

exception

}

(注:本文由elim寫於2023年5月22日)

rsa驗籤中文 RSA簽名及驗籤原理解析

一 名詞解釋 公鑰rsa 金鑰體系中對外公開的部分,通常用於資料加密 驗證數字簽名。私鑰rsa 金鑰體系中非公開的部分,通常用於資料解密 資料簽名。數字簽名 就是只有資訊的傳送者才能產生的,別人無法偽造的一段數字串,它同時也是對傳送者傳送的資訊的真實性的乙個證明。二 為什麼要使用簽名 在系統間報文互...

RSA簽名,驗籤的理解

假設一下,我找了兩個數字,乙個是1,乙個是2。我喜歡2這個數字,就保留起來,不告訴你們 私鑰 然後我告訴大家,1是我的公鑰。我有乙個檔案,不能讓別人看,我就用1加密了。別人找到了這個檔案,但是他不知道2就是解密的私鑰啊,所以他解不開,只有我可以用 數字2,就是我的私鑰,來解密。這樣我就可以保護資料了...

RSA簽名和驗籤說明

最近遇到乙個專案,需要進行rsa的驗籤,rsa的金鑰為2048位即256個位元組長。上游是先對乙個檔案進行sha256做hash,得到32位元組的摘要,然後進行填充,填充規則為前面兩個位元組為0x00,0x01,然後填充全ff,接下來是32位元組的摘要資料,這樣填充之後的總資料長度為256位元組,然...