iOS常用加密方式

示例项目下载地址  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常用加密方式

时间: 2024-10-10 06:23:01

iOS常用加密方式的相关文章

iOS——常用加密方式

iOS代码加密常用加密方式,常见的iOS代码加密算法包括MD5加密.AES加密.BASE64加密. 三大算法iOS代码加密是如何进行加密的: /////////////////////////////////////////////////////////////////// MD5 iOS代码加密使用方法 /////////////////////////////////////////////////////////////////// //创建MD5类,代码如下 #import <Foun

iOS代码加密常用加密方式

在今天的面试中,被问到了iOS是采用什么进行加密解密操作的,我的回答是这样的:AES,MD5,Base 64,然后是对这几种加密算法进行了一下简单的介绍和概述和几种算法之间的不同点和优缺点.然而,收到的回答是:这些都不是iOS的加密!我顿时就无语了,这不就是iOS加密所用到的方法么?然后向面试官请教了一下:MD5是一种摘要....什么叫加密呢?加密是客户端对数据加密和服务器端采用秘钥对数据进行解密处理,为了数据的安全考虑.要说加密应该是RSA.幸亏之前有了解过RSA,只是了解的不是很彻底和清楚.

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 之加密方式

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 > 在最后编码完

iOS常用加密之RSA加密解密

前言: iOS常用的加密有很多种,前两天在工作中遇到了RSA加密,现在把代吗分享出来. RSA基本原理 RSA使用"秘匙对"对数据进行加密解密.在加密解密数据前,需要先生成公钥(public key)和私钥(private key). 公钥(public key): 用于加密数据. 用于公开, 一般存放在数据提供方, 例如iOS客户端. 私钥(private key): 用于解密数据. 必须保密, 私钥泄露会造成安全问题 第一步:公钥.私钥的生成 iOS开发者可直接在Mac终端生成,命

IOS RSA 加密方式

采用RSA加密方式,主要是生成公钥和私钥,公钥用来加密,私钥用来解密,至于其中如何实现的,网上有很多原理. 参见如下: https://github.com/jslim89/RSA-objc PS: 生成私钥 $ openssl genrsa -out private_key.pem 512 生成公钥 $ openssl rsa -in private_key.pem -pubout -out publi

C# 常用加密方式

using System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography;using System.IO; namespace TRSLMS.Website.Common{ /// <summary> /// MD5加密 /// </summary> public class Encrypt { private static MD5 md5 = MD5.Cre

常用加密方式

加密将防止数据被查看或修改,并在原本不安全的信道上提供安全的通信信道,它达到以下目的: ? 保密性:防止用户的标识或数据被读取. ? 数据完整性:防止数据被更改. ? 身份验证:确保数据发自特定的一方. 一.数据加密/编码算法列表 常见用于保证安全的加密或编码算法如下: 1.常用密钥算法 密钥算法用来对敏感数据.摘要.签名等信息进行加密,常用的密钥算法包括: ? DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合: ? 3DES(Trip

iOS开发中常用到的加密方式

1 base64 1.1 简介 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.它将需要编码的数据拆分成字节数组.以3个字节为一组.按顺序排列24位数据,再把这24位数据分成4组,即每组6位.再在每组的的最高位前补两个0凑足一个字节.这样就把一个3字节为一组的数据重新编码成了4个字节.当所要编码的数据的字节数不是3的整倍数,也就是说在分组时最后一组不够3个字节.这时在最后一组填充1到2个0字节.并在最后编码完成后在结尾添加1到2个"=".例:将对ABC进行