zoukankan      html  css  js  c++  java
  • iOS常用的加密方式

    MD5 iOS代码加密

    创建MD5类,代码如下

    #import <Foundation/Foundation.h>

    @interface CJMD5 : NSObject

    +(NSString *)md5HexDigest:(NSString *)input;

    @end

    #import "CJMD5.h"

    #import <CommonCrypto/CommonDigest.h>

    @implementation CJMD5

    +(NSString *)md5HexDigest:(NSString *)input{

        const char* str = [input UTF8String];

        unsigned char result[CC_MD5_DIGEST_LENGTH];

        CC_MD5(str, strlen(str), result);

        NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];

        for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {

            [ret appendFormat:@"%02X",result];

        }

        return ret;

    }

    @end

    MD5是不可逆的只有加密没有解密,iOS代码加密使用方式如下

    NSString *userName = @"cerastes";

    NSString *password = @"hello Word";

    //   MD5加密

    NSString *md5 = [CJMD5 md5HexDigest:password];

    NSLog(@"%@",md5);

    AES加密iOS代码加密使用方法

    //  AES加密

       NSString *encryptedData = [AESCrypt encrypt:userName password:password];//加密

     NSString *message = [AESCrypt decrypt:encryptedData password:password]; //解密

      NSLog(@"加密结果 = %@",encryptedData);

     NSLog(@"解密结果 = %@",message);

    BASE64加密iOS代码加密添加如下方法

    .h

    + (NSString*)encodeBase64String:(NSString *)input;

    + (NSString*)decodeBase64String:(NSString *)input;

    + (NSString*)encodeBase64Data:(NSData *)data;

    + (NSString*)decodeBase64Data:(NSData *)data;

    .m

    + (NSString*)encodeBase64String:(NSString * )input {

        NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

        data = [GTMBase64 encodeData:data];

        NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

        return base64String;

    }

    + (NSString*)decodeBase64String:(NSString * )input {

        NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

        data = [GTMBase64 decodeData:data];

        NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

        return base64String;

    }

    + (NSString*)encodeBase64Data:(NSData *)data {

        data = [GTMBase64 encodeData:data];

        NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

        return base64String;

    }

    + (NSString*)decodeBase64Data:(NSData *)data {

        data = [GTMBase64 decodeData:data];

        NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

        return base64String;

    }

    BASE64加密iOS代码加密使用方法

    //    BASE64加密

        NSString *baseEncodeString = [GTMBase64 encodeBase64String:password];

        NSString *baseDecodeString = [GTMBase64 decodeBase64String:baseEncodeString];

        NSLog(@"baseEncodeString = %@",baseEncodeString);

        NSLog(@"baseDecodeString = %@",baseDecodeString);

    除了以上的三种算法的iOS代码加密之外,iOS应用代码加密也是非常重要的,这里就不贴代码了,主要的iOS代码加密方式如下,

    1)本地数据加密

    对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息。

    2)URL编码加密

    对程序中出现的URL进行编码加密,防止URL被静态分析

    3)网络传输数据加密

    对客户端传输数据提供加密方案,有效防止通过网络接口的拦截获取

    4)方法体,方法名高级混淆

    对应用程序的方法名和方法体进行混淆,保证源码被逆向后无法解析代码

    5)程序结构混排加密

    对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低

  • 相关阅读:
    SQL SERVER中如何用SQL语句给表的栏位加注释sp_addextendedpropert
    baidu搜索出现错误提示页面
    ASP.NET MVC V2 Preview 1 发布 期望VS有更好的表现
    业务逻辑层实现事务处理
    FCKEidtor自動統計輸入字符個數(IE)
    Asp.Net 关于Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies.问题的解决方法。
    Jquery Tabs 在asp.net 中的应用
    IBM总架构师寇卫东:话说程序员的职业生涯
    我喜欢的15个WordPress插件<转>
    The SqlParameter is already contained by another SqlParameterCollection.
  • 原文地址:https://www.cnblogs.com/isItOk/p/5098741.html
Copyright © 2011-2022 走看看