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...