美文网首页
iOS SHA1 和 Base64 url_safe 加密

iOS SHA1 和 Base64 url_safe 加密

作者: XWSxws | 来源:发表于2018-05-30 18:46 被阅读30次

iOS SHA1 和 Base64 url_safe 加密

网上查找的资料SHA1加密后大部分获取的是字符串,如果还要进行下一步操作时,一定要慎用字符串,我最近在做SHA1 和 Base64 url_safe 加密,用SHA1加密后的获取字符串进行Base64编码,但是得到的数值对比安卓和后台接口得到的数值都不一样,安卓和后台SHA1可以直接获取二进制流,然后进行Base64编码,iOS  SHA1没法直接获取data数据,如果转换成字符串在进行Base64编码,得到的数据就不统一,这是一个很大的坑,一定要看好    Demo地址


#import "XWSSHA1Tool.h"

#import

#import "GTMBase64.h"

@implementation XWSSHA1Tool

//普通字符串加密,返回值字符串

+ (NSString *)xwsSHA1:(NSString *)input

{

    constchar*cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];

    NSData *data = [NSData dataWithBytes:cstr length:input.length];

    uint8_t digest[CC_SHA1_DIGEST_LENGTH];

    CC_SHA1(data.bytes, (unsignedint)data.length, digest);

    NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH *2];

    for(inti =0; i < CC_SHA1_DIGEST_LENGTH; i++)

        [output appendFormat:@"%02x", digest[i]];

    NSString *shaStr = [NSString stringWithFormat:@"%@",output];

    NSData *dataBase = [shaStr dataUsingEncoding:NSUTF8StringEncoding];

    NSString *base64String = [dataBase base64EncodedStringWithOptions:0];

    returnbase64String;

}

//带有汉子类型加密,返回值字符串

+ (NSString *)xwsHanziSHA1:(NSString *)input

{

    NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding];

    uint8_t digest[CC_SHA1_DIGEST_LENGTH];

    CC_SHA1(data.bytes, (unsignedint)data.length, digest);

    NSMutableString *output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH *2];

    for(inti=0; i

        [output appendFormat:@"%02x", digest[i]];

    }

    returnoutput;

}

//普通字符串加密,返回值字NSData

+ (NSData *)getDataSHA1:(NSString *)input

{

    constchar*cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];

    NSData *data = [NSData dataWithBytes:cstr length:input.length];

    uint8_t digest[CC_SHA1_DIGEST_LENGTH];

    CC_SHA1(data.bytes, (unsignedint)data.length, digest);

    NSData * base64 = [[NSData alloc]initWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];

    returnbase64;

}

//先SHA1后进行Base64(url_safe)

+ (NSString *)getSHA1WithBase64:(NSString *)input

{

    constchar*cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];

    NSData *data = [NSData dataWithBytes:cstr length:input.length];

    uint8_t digest[CC_SHA1_DIGEST_LENGTH];

    CC_SHA1(data.bytes, (unsignedint)data.length, digest);

    //SHA1直接转data

    NSData * base64 = [[NSData alloc]initWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];

    //SHA1进行Base64编码

    //Base64编码中包含有"+,/,="不安全的URL字符串,我们要对这些字符进行转换

    NSString * base64Str = [GTMBase64 encodeBase64Data:base64];

    NSMutableString * safeBase64Str = [[NSMutableString alloc]initWithString:base64Str];

    safeBase64Str = (NSMutableString * )[safeBase64Str stringByReplacingOccurrencesOfString:@"+"withString:@"-"];

    safeBase64Str = (NSMutableString * )[safeBase64Str stringByReplacingOccurrencesOfString:@"/"withString:@"_"];

    safeBase64Str = (NSMutableString * )[safeBase64Str stringByReplacingOccurrencesOfString:@"="withString:@""];

    NSLog(@"safeBase64编码:%@", safeBase64Str);

    returnsafeBase64Str;

}

相关文章

  • iOS SHA1 和 Base64 url_safe 加密

    iOS SHA1 和 Base64 url_safe 加密 网上查找的资料SHA1加密后大部分获取的是字符串,如果...

  • C语言操作openssl

    C语言调用OpenSSL加解密 md5加密 sha1加密 base64 编码 base64 解码 调用base64...

  • RSA+Base64之RSA

    根据个人项目经验:在项目中,使用RSA加密,用到的是RSA和Base64和SHA1。Base64进行编码。RSA进...

  • iOS加密(一):Base64 +AES +MD5模式

    由于公司对于信息安全比较注重,需要对json数据并用AES加密,然后生成url_safe base64编码。然后继...

  • Android面试

    3. 加密算法有哪些?对称加密和非对称加密的区别? MD5,SHA1,Base64,RSA,AES,DES 非对称...

  • iOS 关于加密

    常见的iOS代码加密常用加密方式包括Base64加密、MD5加密、AES加密、RSA加密等。 Base64加密 B...

  • IOS开发——各类加密算法总结(MD5,CHA,BASE64,A

    一.MD5加密算法 二.sha1加密算法 三.base64加密算法 四.AES 256加密算法 五.加密算法分析 ...

  • android 3DES、RSA加解密算法

    3DES加密算法(加密结果用Base64处理) SHA1加密算法 RSA加解密工具类 MD5加密

  • iOS代码加密常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

  • iOS常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

网友评论

      本文标题:iOS SHA1 和 Base64 url_safe 加密

      本文链接:https://www.haomeiwen.com/subject/zzexsftx.html