zoukankan      html  css  js  c++  java
  • MD5加密,Base64加密/解密,AES加密/解密

    1.从github上下载GTMBase64-master和AESCrypt-ObjC-master导入工程,如下图所示。

    2.使用前的配置及注意事项:

     (1) 在build phases中的GTMBase64.m需要设置 -fno-objc-arc

     (2) 在#import "NSString+Base64.m”文件中导入   #import <Foundation/Foundation.h>

     (3)在#import "GTMBase64.m”文件中添加          #import <CommonCrypto/CommonCrypto.h>

    3. CusMD5.h 和 CusMD5.m 文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #import <Foundation/Foundation.h>
     
    @interface CusMD5 : NSObject
     
    + (NSString *)md5String:(NSString *)str;
     
    @end
     
    #import "CusMD5.h"
    #import <CommonCrypto/CommonDigest.h>
     
    @implementation CusMD5
     
    + (NSString *)md5String:(NSString *)str {
        const char *original_str = [str UTF8String];
        unsigned char result[CC_MD5_DIGEST_LENGTH];
        CC_MD5(original_str, strlen(original_str), result);
        NSMutableString *hash = [NSMutableString string];
        for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
            [hash appendFormat:@"%02X", result[i]];
        return [hash lowercaseString]; }
     
    @end

       ---> MD5只能称为一种不可逆的加密算法,只能用作一些检验过程,不能恢复其原文。

    4. 基本使用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #import "ViewController.h"
    #import "CusMD5.h"
    #import "GTMBase64.h"
    #import "AESCrypt.h"
     
    @interface ViewController ()
     
    @end
     
    @implementation ViewController
     
    - (void)viewDidLoad {
        [super viewDidLoad];
     
        //要加密的字符串
        NSString *strForEn = @"需要加密字符串";
         
        //md5加密
        NSString *strEnRes = [CusMD5 md5String:strForEn];
        NSLog(@"md5 加密: %@",strEnRes);
         
        //base64加密
        NSData *dataEn = [strForEn dataUsingEncoding:NSUTF8StringEncoding];
        NSData *dataEnRes = [GTMBase64 encodeData:dataEn];
        //把加密结果转成string
        NSString *base64EnRes = [[NSString alloc] initWithData:dataEnRes encoding:NSUTF8StringEncoding];
        NSLog(@"base64加密: %@",base64EnRes);
         
        //base64解密
        NSData *resDeBase64 = [GTMBase64 decodeData:dataEnRes];
        NSString *strDeBase64 = [[NSString alloc] initWithData:resDeBase64 encoding:NSUTF8StringEncoding];
        NSLog(@"base64解密: %@",strDeBase64);
     
     
        //aes 加密
        NSString *strAESEnRes = [AESCrypt encrypt:strForEn password:@"secret"];
        NSLog(@"aes 加密: %@",strAESEnRes);
         
        //aes 解密
        NSString *strAESDeRes = [AESCrypt decrypt:strAESEnRes password:@"secret"];
        NSLog(@"aes 解密: %@",strAESDeRes);
    }
     
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
     
    @end
  • 相关阅读:
    LightOJ 1132 Summing up Powers(矩阵快速幂)
    hdu 3804 Query on a tree (树链剖分+线段树)
    LightOJ 1052 String Growth && uva 12045 Fun with Strings (矩阵快速幂)
    uva 12304 2D Geometry 110 in 1! (Geometry)
    LA 3263 That Nice Euler Circuit (2D Geometry)
    2013 SCAUCPC Summary
    poj 3321 Apple Tree (Binary Index Tree)
    uva 11796 Dog Distance (几何+模拟)
    uva 11178 Morley's Theorem (2D Geometry)
    动手动脑
  • 原文地址:https://www.cnblogs.com/wanghuaijun/p/6076427.html
Copyright © 2011-2022 走看看