古詩詞大全網 - 個性簽名 - RSA加密與簽名的區別

RSA加密與簽名的區別

RSA加密:RSA密碼體制是壹種公鑰密碼體制,加密算法公開,以分配的密鑰作為加密解密的關鍵。壹般來說,在壹對公私鑰中,公鑰和私鑰都可以用來加密和解密,即公鑰加密能且只能被對應的私鑰進行解密,私鑰加密能且只能被對應的公鑰進行解密。但我們壹般都用公鑰加密,私鑰解密,而且生成的私鑰往往會比公鑰蘊含了更多的信息量。(這裏說的加密肯定是可逆的,不然直接銷毀就可以了沒必要再去加密,加密是為了保障數據的安全和驗證身份。)

RSA簽名:簽名就是在這份資料後面增加壹段強而有力的證明,以此證明這段信息的發布者和這段信息的有效性完整性。RSA簽名常用的就是將這份信息進行hash,得到壹個hash值,再將hash值加密作為簽名,後綴在信息的末尾。接收方接到傳輸的資料後,使用私鑰解密這段加密過的hash,得到hash值,然後對信息原文進行hash,對比兩次hash是否壹致(驗簽)。簽名的過程是不可逆的,因為hash是不可逆的,畢竟那麽大的文件被hash成壹段字符串還能還原的話那就碉堡了。

在使用RSA進行通訊的時候,壹般是兩者結合,即:加密>簽名>解密>驗簽

我們可以對壹份資料用公鑰加密,再用私鑰解密,但我們對這份資料進行簽名則是不可逆的,因為哈希本身是不可逆的。

前者使用加密保障內容不被泄露,後者使用加密用來身份驗證。

這是因為防止中間人嘗試向私鑰擁有者反復發送壹些特定的字符,得到加密後的信息,達到破解或者偽造之類的目的。所以用私鑰隨便加密信息是不安全的。

由於RSA簽名與加密需要比平時的通訊產生更多的工作量,所以壹般只會用在需要保證數據安全的地方(但隨著設備性能的提升它會擴展到很多方面,畢竟保證隱私也是很重要的,雖然有些人並不在乎這些)。HTTPS的加密解密可以參考 /p/1b48c37b94b9