IOS 与 PHP 通信加密,使用AES 128 CBC no padding

博主在海量信息中历经一天多,成功实现了iOS与PHP间使用AES 128 CBC no padding方式进行加密通信。选择no padding的原因在于避免因PKCS7等填充方式导致解码后去除多余字符的复杂性,''填充则简化了这一过程。文中提供了iOS和PHP的实现代码片段,并强调了输入数据需为16字节倍数以及解码后去除''的注意事项。
摘要由CSDN通过智能技术生成

这个网上的资料真实浩如烟海,但是真正有价值的屈指可数

自己尝试了一天多,终于还是搞定了。

再次要感谢网上的前辈么。

比如下面这个关于php和java端的实现:

http://my.oschina.net/Jacker/blog/86383

关于php和java端的实现。

再比如下面这个关于ios端的实现:

http://www.cnblogs.com/wanyakun/p/3403352.html

为何要采用 no padding 这种形式:

AES加密如果原输入数据不够16字节的整数位,就要补齐,如果采用

pkcs7或者pkcs5这种加密方式,末端添加的数据可能是0x1,0x2,0x3,不固定,

在解码后需要把末端多余的字符去掉,就显得比较棘手。

如果不管补齐多少位,末端都是'\0',去掉的话比较容易操作。

 

好了,再次确认一下,这里使用的是  AES128 CBC no padding加密解密方式。

先上ios端的代码:

 <pre class="objc" name="code">//
//  AES128.m
//  login
//
//  Created by wangdan on 15-3-3.
//  Copyright (c) 2015年 wangdan. All rights reserved.
//

#import "AES128.h"

#import <CommonCrypto/CommonCryptor.h>
#import "GTMBase64.h"



@implementation AES128


+(NSString *)AES128Encrypt:(NSString *)plainText withKey:(NSString *)key
{
    
    if( ![self validKey:key] ){
        return nil;
    }
    
    char keyPtr[kCCKeySi
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值