iOS_對AFNetWorking的請求頭引數進行sha1加密
前言:後臺為防止介面被抓包,毅然決然的要求我在新增一個請求的頭引數,並對該引數進行sha1加密,而且該引數加密之前有一定的演算法格式(雜湊演算法,具體給的演算法在這裡我就不說了)。
1.在加密之前,先需要對滿足後臺給的格式,下面是我模擬
的格式是一個拼湊的字典
{
timestamp = 1518229804;
ua = iPhone;
}
2.然後需要把上面的字典轉化成json字串
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonSign options:-1 error:nil];
NSString *resultJson = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
下面解釋一下options
引數
NSJSONWritingPrettyPrinted = (1UL << 0),
/* Sorts dictionary keys for output using [NSLocale systemLocale]. Keys are compared using NSNumericSearch. The specific sorting method used is subject to change.
*/
NSJSONWritingSortedKeys API_AVAILABLE(macos(10.13), ios(11.0), watchos(4.0), tvos(11.0)) = (1UL << 1)
-----------------------------------------------------
使用`NSJSONWritingPrettyPrinted`會出現 列印的是下面的字串,帶\n和\r
{
timestamp = 1518229804;
ua = iPhone;
}
使用`NSJSONWritingSortedKeys `會出現 列印的是下面的字串,沒有\n和\r
{ timestamp = 1518229804;ua = iPhone;}
//服務端老哥要求我傳這個格式。但是這個引數只支援ios(11.0), 這時候咋辦。下面分解
3.當然是使用NSJSONWritingPrettyPrinted
,然後去除空格和換行符...
resultJson = [resultJson stringByReplacingOccurrencesOfString:@"\r" withString:@""];
resultJson = [resultJson stringByReplacingOccurrencesOfString:@"\n" withString:@""];
4.進行sha1 加密
//sha1加密
NSData *sha1Data = [resultJson dataUsingEncoding:NSUTF8StringEncoding];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(sha1Data.bytes, (unsigned int)sha1Data.length, digest);
NSMutableString *sign = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(int i=0; i<CC_SHA1_DIGEST_LENGTH; i++) {
[sign appendFormat:@"%02x", digest[i]]; //得到sign
}
nice ~ .~ !
相關文章
- 使用AFNetworking進行引數形式的GET請求
- 有趣的請求引數/請求頭
- 檢視進行AFNetworking請求時的頭部資訊
- JavaScript逆向之iwencai請求頭引數加密過程解析JavaScriptAI加密
- AFNetworking的請求頭設定(token)
- SpringMVC學習(三)對映請求引數&請求引數SpringMVC
- 封裝axios請求並對提交引數進行校驗封裝iOS
- 使用 AFNetworking 進行 XML 和 JSON 資料請求XMLJSON
- AFNetworking(二)AFNetworking對form-data請求體的處理ORM
- 請求引數的傳遞
- 請問在一個介面內怎麼根據請求方式對引數進行分別驗證呢?
- Postman傳送請求引數是Map格式的請求Postman
- Linux C 下使用openssl 進行SHA1加密Linux加密
- iOS專案開發實戰——使用AFNetworking進行Http Get請求iOSHTTP
- ruby進行http請求頭設定及獲取HTTP
- 對請求來源進行白名單限制
- GET請求的引數丟失
- 跟我一起動手實現Tomcat(三):解析Request請求引數、請求頭、cookieTomcatCookie
- SpringMVC請求引數解析SpringMVC
- fastapi 請求引數 校驗ASTAPI
- Charles 修改請求(Request)引數
- request的請求引數獲取方式
- 檢視AFnetworking網路請求時伺服器返回的頭部資訊伺服器
- ajax中POST請求與引數(請求體)設定
- HttpClient 進行soap請求HTTPclient
- AFNetworking3.0 HTTPS請求HTTP
- [求助] 使用 python 第三方庫 pycryptodome 進行 RSA 加密得到的結果,發起請求,介面接收到請求後,開發 Java 程式碼私鑰解密後請求引數會亂碼Python加密Java解密
- 使用 http-proxy 對網路請求進行代理HTTP
- GOLANG Web請求引數驗證GolangWeb
- 關於在request請求時,處理請求引數的問題
- TCP 請求頭TCP
- http請求頭HTTP
- ajax中設定請求頭和自定義請求頭
- 如何使用Python對引數進行解析Python
- 表單請求獲取路由引數路由
- 漫遊 servlet請求引數 %urldecodeServlet
- java傳送get請求帶引數Java
- charles 打斷點修改請求引數斷點