iOS经常使用加密方式(MD5,AES,BASE64)与网络数据安全

演示样例项目下载地址  https://github.com/cerastes/Encryption

1MD5

创建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是不可逆的仅仅有加密没有解密使用方式例如以下

NSString *userName = @"cerastes";
NSString *password = @"hello Word";
//   MD5加密
NSString *md5 = [CJMD5 md5HexDigest:password];
NSLog(@"%@",md5);

2AES加密

AES加密开源码git下载地址

https://github.com/Gurpartap/AESCrypt-ObjC

用法

//  AES加密
    NSString *encryptedData = [AESCrypt encrypt:userName password:password];//加密
    NSString *message = [AESCrypt decrypt:encryptedData password:password]; //解密
    NSLog(@"加密结果 = %@",encryptedData);
    NSLog(@"解密结果 = %@",message);

3 BASE64加密

下载地址 https://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/?r=87

加入例如以下方法

.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加密
    NSString *baseEncodeString = [GTMBase64 encodeBase64String:password];
    NSString *baseDecodeString = [GTMBase64 decodeBase64String:baseEncodeString];
    NSLog(@"baseEncodeString = %@",baseEncodeString);
    NSLog(@"baseDecodeString = %@",baseDecodeString);

iOS经常使用加密方式(MD5,AES,BASE64)与网络数据安全

时间: 2024-11-10 02:40:11

iOS经常使用加密方式(MD5,AES,BASE64)与网络数据安全的相关文章

iOS 中的加密方式

1 加密方式主要有: Base64,MD5,RSA,DES,AES,钥匙串存储,Cookie 2 各加密方式的比较 2.1 Base64 2.1.1 基本原理:采用64个基本的 ASCII 值对数据进行重新编码. 2.1.2 实现步骤 > 将需要编码的数据拆分成字节数组 > 以3个字节为一组 > 按顺序排列24位数据,再将这24位数据均分为4组. > 再在每组的最高位前补2个0,称为一个字节. > 在最后一个字节不足的时候末尾填0 > 在最后编码完成的时候末尾添加1到2

C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)

一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应位其中一个为1另一个为0,则返回1. //对数字加密 int P_int_Num, P_int_Key;//定义两个值类型变量 string Encryptstr = (P_int_Num ^ P_int_Key).ToString();//加密数值 //对数字解密 int P_int_Key, P_int_

.NET下的两种加密方式MD5和DEC

md5加密 /// <summary>    /// MD5加密    /// </summary>    /// <param name="toCryString">要加密的字符串</param>    /// <returns></returns>    public static string GetMD5Str(string toCryString)    {        MD5CryptoService

iOS 之加密方式

iOS 中的加密方式 1 加密方式主要有: Base64,MD5,RSA,DES,AES,钥匙串存储,Cookie 2 各加密方式的比较 2.1 Base64 2.1.1 基本原理:采用64个基本的 ASCII 值对数据进行重新编码. 2.1.2 实现步骤 > 将需要编码的数据拆分成字节数组 > 以3个字节为一组 > 按顺序排列24位数据,再将这24位数据均分为4组. > 再在每组的最高位前补2个0,称为一个字节. > 在最后一个字节不足的时候末尾填0 > 在最后编码完

PHP比md5更安全的加密方式--哈希密码

传统加密方式: md5(密码+盐值); $passwordString='your password';//你的密码 $salt="your salt value";//盐值,增加复杂度(随机字串) $md5Password=md5($passwordString.$salt); 从理论上来说,md5不可逆,算是一种比较安全的加密方式.但是我要提醒的是,md5早在04年的时候就被中国人破解(请自行搜索山东大学王小云).一旦被人拖库的化,密码泄漏的可能性极大. 现在推荐一种新的处理方式:

无线网卡加密方式wep wpa/wpa2 介绍

常见无线热点的配置选项:无线名称路由器的无线(Wi-Fi)名称.无线密码无线加密使用WPA2-PSK/WPA-PSK加密方式.AES加密算法,无线密码为8-63个字符,最好是数字.字母.符号的组合.信道无线数据信号传送的通道,建议保持默认的自动,此时路由器会自动根据周围的无线环境选择一个最好的信道.模式路由器工作的无线模式.频段带宽路由器传输无线数据的频段宽度.信号强度可以根据实际使用需要选择不同档次的信号强度.开启AP隔离开启之后可以安全隔离连接到路由器的各个无线设备. 加密方式: 1. WE

iOS常用加密方法(aes、md5、base64)

1.代码 iOS常用加密方法(aes.md5.base64) 1.AES加密 NSData+AES.h文件 // // NSData-AES.h // Smile // // Created by 周 敏 on 12-11-24. // Copyright (c) 2012年 BOX. All rights reserved. // #import <Foundation/Foundation.h> @class NSString; @interface NSData (Encryption)

iOS开发之 AES+Base64数据混合加密与解密

2016-04-08 09:03 编辑: liubinqww 分类:iOS开发 来源:liubinqww 投稿 4 889 "APP的数据安全已经牵动着我们开发者的心,简单的MD5/Base64等已经难以满足当下的数据安全标准,本文简单的介绍下AES与Base64的混合加密与解密" AES:高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES

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”文件中添加