最近公司項目啟動窿侈,針對登錄模擬auth2.0模式炼幔,需要用到AES加解密,RSA私鑰簽名史简,公鑰驗簽乃秀,RSA加解密等功能,對AES RSA這2塊進行了綜合整理了一下圆兵。
AES 后臺那邊要求是 CBC模式跺讯,并且用0x00填充模式,不多說上代碼:
代碼里設(shè)置密碼跟iv偏移量一樣殉农,因為如果服務(wù)端的密碼包含特殊字符的話刀脏,客戶端這邊解析出來的數(shù)據(jù)開頭部分是亂碼。
//初始密鑰長度
size_t const kKeySize = kCCKeySizeAES128; 代表是AES128位進行加解密超凳。
下面說誰RSA加解密愈污,由于架構(gòu)設(shè)計需要用戶每次登錄的RSA公私鑰都不一樣,這就要求前端每次登錄的時候動態(tài)生成一對公私鑰轮傍,用系統(tǒng)的API是可以獲取到公私鑰暂雹,但是我們需要把公私鑰轉(zhuǎn)換成字符串,這樣系統(tǒng)API就不能滿足我們的要求金麸,我這邊用openssl來動態(tài)生成RSA公私鑰擎析,可以參照支付寶公私鑰匙加密和簽名。
下面上RSA加解密:
RSA私鑰簽名和公鑰驗證:
寫的有點亂挥下,下面給整個的Demo揍魂。