RSA簽名:簽名就是在這份資料後面增加壹段強而有力的證明,以此證明這段信息的發布者和這段信息的有效性完整性。RSA簽名常用的就是將這份信息進行hash,得到壹個hash值,再將hash值加密作為簽名,後綴在信息的末尾。接收方接到傳輸的資料後,使用私鑰解密這段加密過的hash,得到hash值,然後對信息原文進行hash,對比兩次hash是否壹致(驗簽)。簽名的過程是不可逆的,因為hash是不可逆的,畢竟那麽大的文件被hash成壹段字符串還能還原的話那就碉堡了。
在使用RSA進行通訊的時候,壹般是兩者結合,即:加密>簽名>解密>驗簽
我們可以對壹份資料用公鑰加密,再用私鑰解密,但我們對這份資料進行簽名則是不可逆的,因為哈希本身是不可逆的。
前者使用加密保障內容不被泄露,後者使用加密用來身份驗證。
這是因為防止中間人嘗試向私鑰擁有者反復發送壹些特定的字符,得到加密後的信息,達到破解或者偽造之類的目的。所以用私鑰隨便加密信息是不安全的。
由於RSA簽名與加密需要比平時的通訊產生更多的工作量,所以壹般只會用在需要保證數據安全的地方(但隨著設備性能的提升它會擴展到很多方面,畢竟保證隱私也是很重要的,雖然有些人並不在乎這些)。HTTPS的加密解密可以參考 /p/1b48c37b94b9