iOS 使用 RSA 加密, 只需要公鑰
原文 http://www.ideawu.net/blog/archives/855.html
在 iOS 上, 加密被和安全性進行了強綁定, 所以, 你不能只做加密(至少公開文檔不告訴你如何只做加密). 但事實上, 很多時候我們加密, 并不是要求 100% 的安全, 只是希望能得到加密本身所帶來的安全, 既不考慮數據重放, 也不考慮第三者攻擊, 也不考慮身份偽裝. 我們僅僅是需要 - 加密, RSA 非對稱加密. 物理上的和系統上的安全我們會想盡全部辦法來解決, 不需要加密模塊來管.
但是, 蘋果不公開允許這樣做, 所以 iOS 上的 Cocoa API 就沒有簡單的這樣的加密函數:
ret = rsa_encrypt(src_data, public_key); 例如, 蘋果的SecKeyEncrypt()函數需要 .der 證書, 而公鑰只是證書的一部分. 所以, 如果你只有公鑰, 你是不能直接使用這個函數的. 幸運的是, iOS 可以使用自己產生的公鑰, 所以, 你要做的是把你的公鑰偽裝成是 iOS 產生的.
這篇文章 , 介紹了如何偽裝公鑰. 偽裝完后, 你就可以直接使用SecKeyEncrypt()函數來進行 RSA 公鑰加密了.
完整的代碼 我放在 GitHub 上 了.
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!