rsa的數學基礎是尤拉函式,它的安全性的保障是大質因數分解十分困難。使用rsa方式時,會首先使用一些工具生成一對公鑰和私鑰(linux和window下都有),其中,使用私鑰可以很快算出公鑰,但是使用公鑰很難算出私鑰。
加密和簽名
加密與簽名雖然都會使用rsa的一些演算法,但是這兩個不能混為一談,是不一樣的(主要體現在用途不一樣)。加密的作用是為了防止明文內容被人看到,驗籤是為了防止明文內容被人篡改。
加密公鑰和私鑰都能用來加密和解密,通常情況下使用私鑰加密,公鑰解密。私鑰和公鑰是成對匹配的,完全匹配的時候才能正確的解密出明文,否則不能獲取到正確的密文,所以私鑰公鑰都能用來加密和解密。不過大多數情況下都是用公鑰加密然後用私鑰解密,這樣能保證能保證明文只能被私鑰持有者獲取到了。反過來私鑰加密公鑰公鑰解密的話,那麼所有持有公鑰的人都能獲取明文了(這樣還要維護公鑰的持有者,就麻煩了)。
加密**:
private static byte encrypt(key key, byte data) throws exception
return raw;
} catch (exception e) }1
2345
6789
1011
1213
1415
1617
1819
2021
2223
2425
解密**:
private static byte decrypt(key key, byte raw) throws exception
return bout.tobytearray();
} catch (exception e) }1
2345
6789
1011
1213
1415
1617
18
驗籤
簽名的作用主要就是防止訊息內容被篡改,一般是使用私鑰生成簽名,然後使用公鑰驗籤(資訊的傳送者一般是私鑰的持有者,公鑰的持有者接受訊息並驗證訊息是否被篡改)。實現過程是對訊息結合私鑰,使用sha1、md5等不可逆的雜湊演算法生成簽名,然後用公鑰對訊息簽名進行驗籤。
私鑰簽名:
public static string signbyprivatekey(privatekey privatekey, byte data) throws exception 12
3456
公鑰驗籤:
public static boolean verifybypublickey(publickey publickey,byte data, string signdata) throws exception
RSA 加密 解密 加簽 驗籤
1.公鑰與私鑰碼生成 2.獲取公鑰 獲取公鑰 return private publickey getpublickey catch exception e 獲取私鑰 獲取私鑰 return private privatekey getprivatekey catch exception e bas...
rsa驗籤中文 RSA簽名及驗籤原理解析
一 名詞解釋 公鑰rsa 金鑰體系中對外公開的部分,通常用於資料加密 驗證數字簽名。私鑰rsa 金鑰體系中非公開的部分,通常用於資料解密 資料簽名。數字簽名 就是只有資訊的傳送者才能產生的,別人無法偽造的一段數字串,它同時也是對傳送者傳送的資訊的真實性的乙個證明。二 為什麼要使用簽名 在系統間報文互...
PHP實現RSA加密,解密,加簽,驗籤
公鑰用於對資料進行加密,私鑰用於對資料進行解密 私鑰用於對資料進行簽名,公鑰用於對簽名進行驗證。封裝的rsa 如下 class rsa 設定私鑰 this keypath path file this keypath directory separator rsa private key.pem p...