rsa加密有兩種使用方式,
第一是對文件內容加密,這種用途需要發送方用公鑰對文件加密, 接收方用私鑰對文件解密。
這種方式下,文件在網絡傳輸中都是密文, 那么在發送方要用rsa公鑰加密. 接收方用私鑰解密. 所以只有私鑰的接收方才能解密,看到原文. 這是rsa單純用於文件加密的用途.
第二是對文件的sha256簽名進行加密, 這種方式下,發送方要用私鑰對簽名進行加密,接收方用公鑰進行解密。
這種方式下, 原文件不加密, rsa與sha265簽名算法, 生成的密文放在文件的開頭。 可完成對文件的驗證. 即該文件在傳輸過程中有沒有被修改過. 如果被修改過, 即驗證失敗. 而crc校驗, 只能驗證文件的完整性. 如果被修改, 則驗證不出來.
rsa還可做ssh身份驗證. git倉庫的驗證用戶的合法性 就是用rsa身份驗證. id_pub是rsa加密后的.
------------------ Rsa_sha256數字簽名驗證 ------------------------------
利用編譯時間,把要點總結一下,也梳理一下思路。
總的思路: 發送方用sha256算法對原文件生成一個簽名文件,即32個字節的hash碼。 然后用rsa加密算法對此算法加密。
接收方對加密的簽名解密,得到一個32個字節的hash碼。 對原文件進行sha256簽名計算,得到32字節的hash. 將這兩個hash碼比較,是否相等。 若相等, 即Rsa_sha256數字簽名驗證通過。