博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS SHA1加密实现方法
阅读量:4483 次
发布时间:2019-06-08

本文共 2724 字,大约阅读时间需要 9 分钟。

使用方法 先导入头文件 #import "SHA1.h"

//SHA1测试NSString* sh1=[SHA1 getSha1String:@"123"];NSLog(@"sh1=%@  长度:%d",sh1,[sh1 length]);NSString * sh2=[SHA1 getSha256String:@"123"];NSLog(@"sh2=%@  长度:%d",sh2,[sh2 length]);

 

自建NSObject子类 命名SHA1

SHA1.h

#import 
@interface SHA1 : NSObject+ (NSString *)getSha1String:(NSString *)srcString;+ (NSString *)getSha256String:(NSString *)srcString;+ (NSString *)getSha384String:(NSString *)srcString;+ (NSString *)getSha512String:(NSString*)srcString;@end

SHA1.m

#import "SHA1.h"#import 
#import
@implementation SHA1//sha1加密方式+ (NSString *)getSha1String:(NSString *)srcString{ const char *cstr = [srcString cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:srcString.length]; uint8_t digest[CC_SHA1_DIGEST_LENGTH]; CC_SHA1(data.bytes, data.length, digest); NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) { [result appendFormat:@"%02x", digest[i]]; } return result;}//sha256加密方式+ (NSString *)getSha256String:(NSString *)srcString { const char *cstr = [srcString cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:srcString.length]; uint8_t digest[CC_SHA256_DIGEST_LENGTH]; CC_SHA1(data.bytes, data.length, digest); NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA256_DIGEST_LENGTH; i++) { [result appendFormat:@"%02x", digest[i]]; } return result;}//sha384加密方式+ (NSString *)getSha384String:(NSString *)srcString { const char *cstr = [srcString cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:srcString.length]; uint8_t digest[CC_SHA384_DIGEST_LENGTH]; CC_SHA1(data.bytes, data.length, digest); NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA384_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA384_DIGEST_LENGTH; i++) { [result appendFormat:@"%02x", digest[i]]; } return result;}//sha512加密方式+ (NSString *)getSha512String:(NSString*)srcString { const char *cstr = [srcString cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data = [NSData dataWithBytes:cstr length:srcString.length]; uint8_t digest[CC_SHA512_DIGEST_LENGTH]; CC_SHA512(data.bytes, data.length, digest); NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA512_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_SHA512_DIGEST_LENGTH; i++) [result appendFormat:@"%02x", digest[i]]; return result;}@end

 

转载于:https://www.cnblogs.com/death3721/p/5070443.html

你可能感兴趣的文章
sql语句的进化--hibernate篇
查看>>
python爬虫之cookie
查看>>
11.超市收银系统的项目
查看>>
2017年5月29号课堂笔记
查看>>
HDU4247【瞎搞】
查看>>
lightoj 1125【背包·从n个选m个】
查看>>
HDU 1243 反恐训练营(最长公共序列)
查看>>
mysql数据库隔离级别
查看>>
(六)buildroot使用详解
查看>>
chrome修改UserAgent,调试
查看>>
Source Insight4.0 试用。。试用。。试用。。
查看>>
python循环for,range,xrange;while
查看>>
hadoop的节点间的通信
查看>>
HashMap
查看>>
mysql 主从 重新同步
查看>>
论如何制做一个工程APP的测试内容
查看>>
如何通过Java启动linux脚本
查看>>
linux系统调用之网络管理2
查看>>
三种样式表插入方法
查看>>
hdu 2139 Calculate the formula (递推)
查看>>