1. Objective-c实现MD5和SHA1算法相对还是比较简单的,可以直接调用系统的C/C++共享库来实现调用
  2. MD5即Message Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一
  3. SHA即Secure Hash Algorithm(安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院 (NIST) 发布的一系列密码散列函数。
  4. 使用方式如下:
  5. MD5加密方式
  6. SString *) md5
  7. {
  8. const charchar *cStr = [self UTF8String];
  9. unsigned char digest[CC_MD5_DIGEST_LENGTH];
  10. CC_MD5( cStr, strlen(cStr), digest );
  11. NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
  12. for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
  13. [output appendFormat:@"%02x", digest[i]];
  14. return output;
  15. }
  16. SHA1加密方式
  17. - (NSString*) sha1
  18. {
  19. const charchar *cstr = [self cStringUsingEncoding:NSUTF8StringEncoding];
  20. NSData *data = [NSData dataWithBytes:cstr length:self.length];
  21. uint8_t digest[CC_SHA1_DIGEST_LENGTH];
  22. CC_SHA1(data.bytes, data.length, digest);
  23. NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
  24. for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
  25. [output appendFormat:@"%02x", digest[i]];
  26. return output;
  27. }
  28. 当然也可以结合BASE64来使用,这里的BASE64编码使用 GTMBase64实现,需要导入
  29. - (NSString *) sha1_base64
  30. {
  31. const charchar *cstr = [self cStringUsingEncoding:NSUTF8StringEncoding];
  32. NSData *data = [NSData dataWithBytes:cstr length:self.length];
  33. uint8_t digest[CC_SHA1_DIGEST_LENGTH];
  34. CC_SHA1(data.bytes, data.length, digest);
  35. NSData * base64 = [[NSData alloc]initWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];
  36. base64 = [GTMBase64 encodeData:base64];
  37. NSString * output = [[NSString alloc] initWithData:base64 encoding:NSUTF8StringEncoding];
  38. return output;
  39. }
  40. - (NSString *) md5_base64
  41. {
  42. const charchar *cStr = [self UTF8String];
  43. unsigned char digest[CC_MD5_DIGEST_LENGTH];
  44. CC_MD5( cStr, strlen(cStr), digest );
  45. NSData * base64 = [[NSData alloc]initWithBytes:digest length:CC_MD5_DIGEST_LENGTH];
  46. base64 = [GTMBase64 encodeData:base64];
  47. NSString * output = [[NSString alloc] initWithData:base64 encoding:NSUTF8StringEncoding];
  48. return output;
  49. }
  50. 以下是实现完整功能,全部代码  GTMBase64 下载地址:http://download.csdn.net/detail/hslinux/7868363
  51. //

    //  ViewController.m

    //  Base64AndMD5AndSha1

    //

    //  Created by liuhaiyan on 16/7/4.

    //  Copyright © 2016年 qust. All rights reserved.

    //

    #import "ViewController.h"

    #import <CommonCrypto/CommonCrypto.h>

    #import "GTMBase64.h"

    #import "GTMDefines.h"

    @interface ViewController ()

    @end

    @implementation ViewController

    - (void)viewDidLoad {

    [superviewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    NSLog(@"%@",[selfsha1:@"bviulbvcksdhiu"]);

    NSLog(@"%@",[selfsha1_base64:@"bviulbvcksdhiu"]);

    NSLog(@"%@",[selfbase64:@"rbgiyrbsvjhsg"]);

    NSLog(@"%@",[selfbase641:@"cmJnaXlyYnN2amhzZw=="]);

    NSLog(@"%@",[selfmd5:@"rbgiyrbsvjhsg"]);

    NSLog(@"%@",[selfmd5_base64:@"rbgiyrbsvjhsg"]);

    }

    - (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

    }

    - (NSString*) sha1:(NSString *)str

    {

    constchar *cstr = [strcStringUsingEncoding:NSUTF8StringEncoding];

    NSData *data = [NSDatadataWithBytes:cstrlength:str.length];

    uint8_t digest[CC_SHA1_DIGEST_LENGTH];

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

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

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

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

    return output;

    }

    - (NSString *) base64:(NSString *)str

    {

    NSData * data = [strdataUsingEncoding:NSASCIIStringEncodingallowLossyConversion:YES];

    data = [GTMBase64encodeData:data];

    NSString * output = [[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding];

    return output;

    }

    -(NSString *) md5:(NSString *)str

    {

    constchar *cStr = [strUTF8String];

    unsignedchar digest[CC_MD5_DIGEST_LENGTH];

    CC_MD5( cStr, (unsigned)strlen(cStr), digest );

    NSMutableString *output = [NSMutableStringstringWithCapacity:CC_MD5_DIGEST_LENGTH *2];

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

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

    return output;

    }

    - (NSString *) base641:(NSString *)str

    {

    NSData * data = [strdataUsingEncoding:NSASCIIStringEncodingallowLossyConversion:YES];

    data = [GTMBase64decodeData:data];

    NSString * output = [[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding];

    return output;

    }

    - (NSString *) sha1_base64:(NSString *)str

    {

    constchar *cstr = [strcStringUsingEncoding:NSUTF8StringEncoding];

    NSData *data = [NSDatadataWithBytes:cstrlength:str.length];

    uint8_t digest[CC_SHA1_DIGEST_LENGTH];

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

    NSData * base64 = [[NSDataalloc]initWithBytes:digestlength:CC_SHA1_DIGEST_LENGTH];

    base64 = [GTMBase64encodeData:base64];

    NSString * output = [[NSStringalloc]initWithData:base64encoding:NSUTF8StringEncoding];

    return output;

    }

    - (NSString *) md5_base64:(NSString *)str

    {

    constchar *cStr = [strUTF8String];

    unsignedchar digest[CC_MD5_DIGEST_LENGTH];

    CC_MD5( cStr, (unsigned)strlen(cStr), digest );

    NSData * base64 = [[NSDataalloc]initWithBytes:digestlength:CC_MD5_DIGEST_LENGTH];

    base64 = [GTMBase64encodeData:base64];

    NSString * output = [[NSStringalloc]initWithData:base64encoding:NSUTF8StringEncoding];

    return output;

    }

    @end

    下面一张截图,为加密后的结果

MD5 base64 sha1 加密,解密相关推荐

  1. python加密解密 sha256_Python加密方法小结【md5,base64,sha1】

    本文实例总结了python加密方法.分享给大家供大家参考,具体如下: MD5加密: def md5(str): import hashlib m = hashlib.md5() m.update(st ...

  2. Android SHA1加密解密

    SHA1加密解密 public static String jmSha1Key() throws Exception {String jm_key =Sha1Util.encryptToSHA(MD5 ...

  3. MD5和SHA1加密

    MD5和SHA1加密 MD5和SHA1算法对数据进行加密 例: 'MD5加密 Dim UserPWD as String UserPWD = System.Web.Security.FormsAuth ...

  4. hashlib —— Python 的 md5 和 sha1 加密

    python的md5和sha1加密 0. md5 与 sha1 MD5 的全称是 Message-Digest Algorithm 5(信息-摘要算法).128 位长度.目前 MD5 是一种不可逆算法 ...

  5. 在线Base64编码加密解密还原工具

    在线Base64编码加密解密还原工具 在线Base64编码加密解密还原工具 在线对数据进行base64编码加密和对base64数据进行解密还原 Base64编码要求把3个8位字节(38=24)转化为4 ...

  6. Base64在线加密解密

    Base64是一种基于64个可打印字符来表示二进制数据的表示方法. 推荐一款在线base64编码加密解密工具 http://www.json996.com/base64.html

  7. php64解密,PHP 用base64兑现加密解密

    PHP 用base64实现加密解密 php中用base64实现加密解密:    base64_encode() 和 base64_decode() 进行加密和解密. 语法:    string bas ...

  8. php base64怎么加密,怎么在php项目中利用base64进行加密解密

    怎么在php项目中利用base64进行加密解密 发布时间:2020-12-19 14:55:49 来源:亿速云 阅读:76 作者:Leah 怎么在php项目中利用base64进行加密解密?很多新手对此 ...

  9. php结合md5的加密解密,php结合md5实现的加密解密方法

    本文实例讲述了php结合md5实现的加密解密方法.分享给大家供大家参考,具体如下: 最近在整理代码发现了一个不错的东西,结合md5的加解密算法.网上关于php结合md5的加密,解密算法比较少的,其实p ...

最新文章

  1. django models索引_Django开发者常犯的7种错误
  2. Qt 项目视图的便捷类
  3. requirejs学习之-- 初始化(一)
  4. 如何用JS实现音乐播放、暂停
  5. windows下使用word2vec训练维基百科中文语料全攻略!(二)
  6. javascript设计模式——Publish/Subscribe
  7. DDD(领域驱动设计)系列之二-应用架构
  8. 中软国际2020年业绩再创新高 归母净利同比增长26.5%
  9. 【EF】Entity Framework 6新特性:全局性地自定义Code First约定
  10. MutationObserver监听页面是否加载完成
  11. 基于python-scrapy框架的爬虫系统
  12. 使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强
  13. 《最受欢迎的男友职业排行榜Top10》
  14. php 模态框效果,评论:超酷的模态框效果 - Nifty
  15. R3Det: Refined Single-Stage Detector with Feature Refinementfor Rotating Object论文学习
  16. 一个简单的朋友圈单张或多张图片展示的思路
  17. solr教程,值得刚接触搜索开发人员一看(转载:http://blog.csdn.net/awj3584/article/details/16963525)
  18. natapp邀请码,新用户购买域名可以享受9折优惠
  19. 去掉高德地图左下角的logo和文字
  20. 英特尔眼中的三大科技趋势

热门文章

  1. 模糊规则、FCM、ANFIS学习笔记(持续更新中......)
  2. 数字孪生流域建设及其应用
  3. AutoCAD 定义 AutoLISP 函数
  4. 给老鼠大脑注入光纤能控制老鼠酗酒了?!|技术前沿洞察
  5. 安徽省2018工程计价电子版_2018安徽省装饰工程计价定额.pdf
  6. RTOS IPV6笔记
  7. 数控加工仿真系统的使用介绍(上)
  8. 不用PLC Smart触摸屏与多台变频器通信 变频器通讯西门子触摸屏直接与台达VFD-S1和松下VF100变频器MODBUS RTU通讯,
  9. 小A的最短路(LCA、倍增算法学习)
  10. 【小沐学Python】Python实现在线英语翻译功能