DES加密 浅谈

由于项目需要,所有的上传数据必须经过DES加密,折腾了一大早,弄完之后回头再看也不是很费劲,当时是没找准方法,简单地写一下,具体项目里大家就灵活运用吧。


1.如果多处地方需要加密,就最好单独创建一个类,然后在加密的地方调用即可(encryptViewController为加密类的名字)。

2 在encryptViewController.h中

#import <UIKit/UIKit.h>

#import <CommonCrypto/CommonCryptor.h>


@interface encryptViewController : UIViewController

-(NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key;

@end

在encryptViewController.m中则添加算法

//加密算法

static Byte iv[] = {1,2,3,4,5,6,7,8};


-(NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key


{

    

    

    NSString *ciphertext = nil;

    

    const char *textBytes = [plainText UTF8String];

    

    NSUInteger dataLength = [plainText length];

    

    unsigned char buffer[1024];

    

    memset(buffer, 0, sizeof(char));

    

    size_t numBytesEncrypted = 0;

    

    CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmDES,

                                          

                                          kCCOptionPKCS7Padding,

                                          

                                          [key UTF8String], kCCKeySizeDES,

                                          

                                          iv,

                                          

                                          textBytes, dataLength,

                                          

                                          buffer, 1024,

                                          

                                          &numBytesEncrypted);

    

    if (cryptStatus == kCCSuccess) {

        

        NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];

        

        ciphertext = [data base64Encoding];

        

    }

    

    ciphertext =[ciphertext stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];

    return ciphertext;

    

}

3.在需要加密的地方添加

 

        //拼接

        NSString *keyStr = @“具体要加密的内容”;

       //加密

                encryptViewController *encryVC = [[encryptViewController alloc]init];

        NSString *ciphertext= [encryVC encryptUseDES:keyStr key:@“1111”(这里的key就是指你与服务器约定的表示符,也就是秘钥)。
];

        

        NSLog(@"明文:%@",keyStr);

        

        NSLog(@"秘钥:%@",@"220140527");

        

        NSLog(@"密文:%@",ciphertext);

        NSString*strurl = [NSString stringWithFormat:ciphertext];

4.然后就正常的上传数据了

        //构建URL

        NSURL *url=[NSURL URLWithString:strurl];

。。。。。。。。。。。。。。。。。。。。。。。。。。。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值