MD5 base64 sha1 加密,解密
- Objective-c实现MD5和SHA1算法相对还是比较简单的,可以直接调用系统的C/C++共享库来实现调用
- MD5即Message Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一
- SHA即Secure Hash Algorithm(安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院 (NIST) 发布的一系列密码散列函数。
- 使用方式如下:
- MD5加密方式
- SString *) md5
- {
- const charchar *cStr = [self UTF8String];
- unsigned char digest[CC_MD5_DIGEST_LENGTH];
- CC_MD5( cStr, strlen(cStr), digest );
- NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
- for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
- [output appendFormat:@"%02x", digest[i]];
- return output;
- }
- SHA1加密方式
- - (NSString*) sha1
- {
- const charchar *cstr = [self cStringUsingEncoding:NSUTF8StringEncoding];
- NSData *data = [NSData dataWithBytes:cstr length:self.length];
- uint8_t digest[CC_SHA1_DIGEST_LENGTH];
- CC_SHA1(data.bytes, data.length, digest);
- NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
- for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
- [output appendFormat:@"%02x", digest[i]];
- return output;
- }
- 当然也可以结合BASE64来使用,这里的BASE64编码使用 GTMBase64实现,需要导入
- - (NSString *) sha1_base64
- {
- const charchar *cstr = [self cStringUsingEncoding:NSUTF8StringEncoding];
- NSData *data = [NSData dataWithBytes:cstr length:self.length];
- uint8_t digest[CC_SHA1_DIGEST_LENGTH];
- CC_SHA1(data.bytes, data.length, digest);
- NSData * base64 = [[NSData alloc]initWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];
- base64 = [GTMBase64 encodeData:base64];
- NSString * output = [[NSString alloc] initWithData:base64 encoding:NSUTF8StringEncoding];
- return output;
- }
- - (NSString *) md5_base64
- {
- const charchar *cStr = [self UTF8String];
- unsigned char digest[CC_MD5_DIGEST_LENGTH];
- CC_MD5( cStr, strlen(cStr), digest );
- NSData * base64 = [[NSData alloc]initWithBytes:digest length:CC_MD5_DIGEST_LENGTH];
- base64 = [GTMBase64 encodeData:base64];
- NSString * output = [[NSString alloc] initWithData:base64 encoding:NSUTF8StringEncoding];
- return output;
- }
- 以下是实现完整功能,全部代码 GTMBase64 下载地址:http://download.csdn.net/detail/hslinux/7868363
//
// 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 加密,解密相关推荐
- python加密解密 sha256_Python加密方法小结【md5,base64,sha1】
本文实例总结了python加密方法.分享给大家供大家参考,具体如下: MD5加密: def md5(str): import hashlib m = hashlib.md5() m.update(st ...
- Android SHA1加密解密
SHA1加密解密 public static String jmSha1Key() throws Exception {String jm_key =Sha1Util.encryptToSHA(MD5 ...
- MD5和SHA1加密
MD5和SHA1加密 MD5和SHA1算法对数据进行加密 例: 'MD5加密 Dim UserPWD as String UserPWD = System.Web.Security.FormsAuth ...
- hashlib —— Python 的 md5 和 sha1 加密
python的md5和sha1加密 0. md5 与 sha1 MD5 的全称是 Message-Digest Algorithm 5(信息-摘要算法).128 位长度.目前 MD5 是一种不可逆算法 ...
- 在线Base64编码加密解密还原工具
在线Base64编码加密解密还原工具 在线Base64编码加密解密还原工具 在线对数据进行base64编码加密和对base64数据进行解密还原 Base64编码要求把3个8位字节(38=24)转化为4 ...
- Base64在线加密解密
Base64是一种基于64个可打印字符来表示二进制数据的表示方法. 推荐一款在线base64编码加密解密工具 http://www.json996.com/base64.html
- php64解密,PHP 用base64兑现加密解密
PHP 用base64实现加密解密 php中用base64实现加密解密: base64_encode() 和 base64_decode() 进行加密和解密. 语法: string bas ...
- php base64怎么加密,怎么在php项目中利用base64进行加密解密
怎么在php项目中利用base64进行加密解密 发布时间:2020-12-19 14:55:49 来源:亿速云 阅读:76 作者:Leah 怎么在php项目中利用base64进行加密解密?很多新手对此 ...
- php结合md5的加密解密,php结合md5实现的加密解密方法
本文实例讲述了php结合md5实现的加密解密方法.分享给大家供大家参考,具体如下: 最近在整理代码发现了一个不错的东西,结合md5的加解密算法.网上关于php结合md5的加密,解密算法比较少的,其实p ...
最新文章
- django models索引_Django开发者常犯的7种错误
- Qt 项目视图的便捷类
- requirejs学习之-- 初始化(一)
- 如何用JS实现音乐播放、暂停
- windows下使用word2vec训练维基百科中文语料全攻略!(二)
- javascript设计模式——Publish/Subscribe
- DDD(领域驱动设计)系列之二-应用架构
- 中软国际2020年业绩再创新高 归母净利同比增长26.5%
- 【EF】Entity Framework 6新特性:全局性地自定义Code First约定
- MutationObserver监听页面是否加载完成
- 基于python-scrapy框架的爬虫系统
- 使用MATLAB进行图像处理——显示图像的灰度直方图并进行对比度增强
- 《最受欢迎的男友职业排行榜Top10》
- php 模态框效果,评论:超酷的模态框效果 - Nifty
- R3Det: Refined Single-Stage Detector with Feature Refinementfor Rotating Object论文学习
- 一个简单的朋友圈单张或多张图片展示的思路
- solr教程,值得刚接触搜索开发人员一看(转载:http://blog.csdn.net/awj3584/article/details/16963525)
- natapp邀请码,新用户购买域名可以享受9折优惠
- 去掉高德地图左下角的logo和文字
- 英特尔眼中的三大科技趋势
热门文章
- 模糊规则、FCM、ANFIS学习笔记(持续更新中......)
- 数字孪生流域建设及其应用
- AutoCAD 定义 AutoLISP 函数
- 给老鼠大脑注入光纤能控制老鼠酗酒了?!|技术前沿洞察
- 安徽省2018工程计价电子版_2018安徽省装饰工程计价定额.pdf
- RTOS IPV6笔记
- 数控加工仿真系统的使用介绍(上)
- 不用PLC Smart触摸屏与多台变频器通信 变频器通讯西门子触摸屏直接与台达VFD-S1和松下VF100变频器MODBUS RTU通讯,
- 小A的最短路(LCA、倍增算法学习)
- 【小沐学Python】Python实现在线英语翻译功能