iOS安全加密:AES-RSA-For-iOS

jopen 9年前發布 | 21K 次閱讀 iOS開發 移動開發 AES-RSA-For-iOS

iOS,安全加密。采用RSA簽名和AES隨機秘鑰加密,AES的隨機秘鑰采用RSA加密。密碼0123456789abcdef?加密字段1加密結果:2yPBJGtAg/AfuvT8idAmzw==

   NSMutableDictionary *resultDic = [[NSMutableDictionary alloc]initWithCapacity:1];
    //step1 對報文數據源排序a->z
    NSMutableArray *sortedArray = [self sortDictionary:EncryptDic];
    //step2 取出排序過后數組的value,拼成string
    NSMutableArray *arrayOfValues = [NSMutableArray arrayWithArray:sortedArray];
    NSString *paramValue = [arrayOfValues componentsJoinedByString:@""];
    //step3 根據RAS私有密鑰簽名業務請求參數值字符串(paramValue),生成基于SHA1的RSA數字簽名
    CRSA *t = [CRSA shareInstance];
    NSString *sign = [t encryptByRsa:paramValue withKeyType:KeyTypePrivate];
    //step4 將簽名放入原報文
    NSMutableDictionary *dicWithSign = [NSMutableDictionary dictionaryWithDictionary:EncryptDic];
    [dicWithSign setObject:sign forKey:@"sign"];
    //step5 隨機生成16位數字和字母組成的
    NSString *merchantAesKey = [LcAESRSA set32bitString:16];
    NSLog(@"\rAES key :%@",merchantAesKey);
    //step6 用16位隨機碼加密含有簽名的報文
    SBJsonWriter * parser = [[SBJsonWriter alloc]init];
    NSString * realdata = [parser stringWithObject:dicWithSign];
    NSString *Stringdata = [NSData AES256EncryptWithPlainText:realdata key:merchantAesKey];
    //step7 使用 RSA 加密 merchantAesKey 生成密鑰密文:
    NSString *Stringencryptkey = [t encryptByRsa:merchantAesKey withKeyType:KeyTypePublic];
    [resultDic setObject:Stringdata forKey:@"data"];
    [resultDic setObject:Stringencryptkey forKey:@"encryptKey"];

項目主頁:http://www.baiduhome.net/lib/view/home/1441704774649

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!