- 浏览: 2196351 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
iOS常用加密方法(aes、md5、base64)
1、AES加密
NSData+AES.h文件
NSData+AES.m文件
这里AES在iOS加过密以后以nsdata的形式存下来,如果想以nsstring形式存储,那么对nsdata进行base64位编码。
2、BASE64编码
首先下载GTMBase64文件,在工程中加入三个文件
GTMDefines.h
GTMBase64.h
GTMBase64.m
你可以在这里找到这三个文件
http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/?r=87
你也可以在下面的demo里面找到这3个文件,demo会完整实现文章里面常用的3种编码方法。
我在此稍微封装一下:
.h文件
.m文件
3、MD5加密
NSString+MD5.h文件
NSString+MD5.m文件
现在去google网站上下载还得番习习墙出去,天朝真郁闷,我这里把下载到的base64的三个文件直接打包上传上来,谁需要谁就下吧...
1、AES加密
NSData+AES.h文件
// // NSData-AES.h // // Created by iaiai // QQ:176291935 // #import <Foundation/Foundation.h> @class NSString; @interface NSData (Encryption) - (NSData *)AES256EncryptWithKey:(NSString *)key; //加密 - (NSData *)AES256DecryptWithKey:(NSString *)key; //解密 @end
NSData+AES.m文件
// // NSData-AES.h // // Created by iaiai // QQ:176291935 // #import "NSData+AES.h" #import <CommonCrypto/CommonCryptor.h> @implementation NSData (Encryption) - (NSData *)AES256EncryptWithKey:(NSString *)key {//加密 char keyPtr[kCCKeySizeAES256+1]; bzero(keyPtr, sizeof(keyPtr)); [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding]; NSUInteger dataLength = [self length]; size_t bufferSize = dataLength + kCCBlockSizeAES128; void *buffer = malloc(bufferSize); size_t numBytesEncrypted = 0; CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding | kCCOptionECBMode, keyPtr, kCCBlockSizeAES128, NULL, [self bytes], dataLength, buffer, bufferSize, &numBytesEncrypted); if (cryptStatus == kCCSuccess) { return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted]; } free(buffer); return nil; } - (NSData *)AES256DecryptWithKey:(NSString *)key {//解密 char keyPtr[kCCKeySizeAES256+1]; bzero(keyPtr, sizeof(keyPtr)); [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding]; NSUInteger dataLength = [self length]; size_t bufferSize = dataLength + kCCBlockSizeAES128; void *buffer = malloc(bufferSize); size_t numBytesDecrypted = 0; CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding | kCCOptionECBMode, keyPtr, kCCBlockSizeAES128, NULL, [self bytes], dataLength, buffer, bufferSize, &numBytesDecrypted); if (cryptStatus == kCCSuccess) { return [NSData dataWithBytesNoCopy:buffer length:numBytesDecrypted]; } free(buffer); return nil; } @end
这里AES在iOS加过密以后以nsdata的形式存下来,如果想以nsstring形式存储,那么对nsdata进行base64位编码。
2、BASE64编码
首先下载GTMBase64文件,在工程中加入三个文件
GTMDefines.h
GTMBase64.h
GTMBase64.m
你可以在这里找到这三个文件
http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/?r=87
你也可以在下面的demo里面找到这3个文件,demo会完整实现文章里面常用的3种编码方法。
我在此稍微封装一下:
.h文件
#pragma mark - base64 + (NSString*)encodeBase64String:(NSString *)input; + (NSString*)decodeBase64String:(NSString *)input; + (NSString*)encodeBase64Data:(NSData *)data; + (NSString*)decodeBase64Data:(NSData *)data;
.m文件
#pragma mark - base64 + (NSString*)encodeBase64String:(NSString * )input { NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; data = [GTMBase64 encodeData:data]; NSString *base64String = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; 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] autorelease]; return base64String; } + (NSString*)encodeBase64Data:(NSData *)data { data = [GTMBase64 encodeData:data]; NSString *base64String = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; return base64String; } + (NSString*)decodeBase64Data:(NSData *)data { data = [GTMBase64 decodeData:data]; NSString *base64String = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; return base64String; }
3、MD5加密
NSString+MD5.h文件
// // NSString+MD5Encrypt.h // // Created by iaiai // QQ:176291935 // #import <CommonCrypto/CommonDigest.h> @interface NSString (MD5) - (NSString *)md5Encrypt; @end
NSString+MD5.m文件
// // NSString+MD5Encrypt.h // // Created by iaiai // QQ:176291935 // #import "NSString+MD5.h" @implementation NSString (MD5) - (NSString *)md5Encrypt { const char *original_str = [self UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(original_str, strlen(original_str), result); NSMutableString *hash = [NSMutableString string]; for (int i = 0; i < 16; i++) [hash appendFormat:@"%02X", result[i]]; return [hash lowercaseString]; } @end
现在去google网站上下载还得番习习墙出去,天朝真郁闷,我这里把下载到的base64的三个文件直接打包上传上来,谁需要谁就下吧...
- GTM.zip (11 KB)
- 下载次数: 3
发表评论
-
带你深入理解 FLUTTER 中的字体“冷”知识
2020-08-10 23:40 626本篇将带你深入理解 Flutter 开发过程中关于字体和文 ... -
Flutter -自定义日历组件
2020-03-01 17:56 1099颜色文件和屏幕适配的文件 可以自己给定 import ... -
Dart高级(一)——泛型与Json To Bean
2020-02-23 19:13 991从 Flutter 发布到现在, 越来越多人开始尝试使用 Da ... -
flutter loading、Progress进度条
2020-02-21 17:03 1166Flutter Progress 1 条形无固定值进度条 ... -
Flutter使用Https加载图片
2020-02-21 01:39 1004Flutter使用Https加载图片 使用http加载图片出 ... -
flutter shared_preferences 异步变同步
2020-02-21 00:55 839前言 引用 在开发原生iOS或Native应用时,一般有判断上 ... -
Flutter TextField边框颜色
2020-02-19 21:31 925监听要销毁 myController.dispose(); T ... -
flutter Future的正确用法
2020-02-18 21:55 800在flutter中经常会用到异步任务,dart中异步任务异步处 ... -
记一次Flutter简单粗暴处理HTTPS证书检验方法
2020-02-18 14:13 948最近在做Flutter项目到了遇到一个无解的事情,当使用Ima ... -
flutter 获取屏幕宽度高度 通知栏高度等屏幕信息
2019-07-27 08:39 1327##MediaQuery MediaQuery.of(con ... -
Mac上制作Centos7系统U盘安装盘
2019-07-23 11:25 640Centos7 下载地址: https://www.cento ... -
关于flutter RefreshIndicator扩展listview下拉刷新的问题
2019-07-10 19:40 1113当条目过少时listview某些嵌套情况下可能不会滚动(条目 ... -
flutter listview 改变状态的时候一直无限添加
2019-07-10 16:01 776setstate的时候会一直无限的调用listview.bui ... -
Flutter Android端启动白屏问题的解决
2019-07-09 00:51 1506问题描述 Flutter 应用在 Android 端上启动时 ... -
Flutter中SnackBar使用
2019-07-08 23:43 766底部弹出,然后在指定时间后消失。 注意: build(Bui ... -
Flutter 之点击空白区域收起键盘
2019-07-08 18:43 1781点击空白处取消TextField焦点这个需求是非常简单的,在学 ... -
Flutter 弹窗 Dialog ,AlertDialog,IOS风格
2019-07-08 18:04 1370import 'package:flutter/mate ... -
flutter ---TextField 之 输入类型、长度限制
2019-07-08 14:30 2313TextField想要实现输入类型、长度限制需要先引入impo ... -
【flutter 溢出BUG】键盘上显示bottom overflowed by 104 PIXELS
2019-07-08 11:13 1549一开始直接使用Scaffold布局,body:new Colu ... -
解决Flutter项目卡在Initializing gradle...界面的问题
2019-07-07 12:53 864Flutter最近很火,我抽出了一点时间对Flutter进行了 ...
相关推荐
在iOS项目中,`Encryption`文件可能包含了实现这些加密方法的示例代码,包括AES加密、MD5哈希和Base64编码的API调用。通过学习和理解这些代码,开发者可以更好地理解和运用这些加密技术,提高应用程序的安全性。记住...
本篇将详细介绍三种常用的加密方法:AES(高级加密标准)、MD5(消息摘要算法5)以及Base64编码。 **AES加密** AES,全称Advanced Encryption Standard,是一种块密码,广泛用于对大量数据进行加密。它基于替换和...
在iOS平台上,我们可以使用`CommonCrypto`库或者Swift的`CryptoKit`框架来实现AES加密,然后使用内置的`Data`类的`base64Encoded`方法进行Base64编码。 **应用场景** 这种组合方式常用于敏感信息的存储和传输,...
Base64转码,AES加密解密,IOS,Android,Java 后台。 本工程可以直接使用,而且与IOS,Android,JAVA 已调通。 主要用于客户端进行通信,数据之间地安全性。对数据进行加密和解密。 适用于银行等较为保密的项目中。 ...
本主题主要涉及了基础编码技术如Base64,以及密码学中的哈希算法MD5,对称加密AES和DES,以及非对称加密RSA。 1. **Base64**:Base64是一种用于将二进制数据转换为可打印ASCII字符的编码方式。在iOS中,`Data`对象...
本文将深入探讨在iOS中使用AES、DES、BASE64和RSA四种加密技术,并提供一个HelloWorld示例代码来帮助理解它们的用法。 首先,AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,适用于大量数据的...
在iOS和Android平台上实现AES加密解密是开发者经常遇到的任务,尤其对于需要跨平台传输和存储敏感信息的场景。本篇文章将详细探讨AES加密解密算法在iOS和Android平台上的实现原理以及具体步骤。 首先,AES算法基于...
在iOS开发中,Base64编码是一种常见的数据转换方法,用于将二进制数据转换为ASCII字符串,以便在网络上传输或者存储。Base64是一种基于64个字符的编码方式,这64个字符包括大小写字母、数字以及"+"和"/",在末尾可能...
对于iOS,可以利用`CommonCrypto`框架来实现DES加密,而`NSData`类的`base64EncodedStringWithOptions:`方法则能进行Base64编码。 为了实现跨平台的兼容性,Android、iOS和Java的代码需要保持一致的密钥管理和加密...
5. 除了AES加密,还可以结合哈希算法(如SHA-256)和随机数生成器来增强安全性,例如在密钥生成时使用。 6. 最后,为了保证程序的健壮性,记得处理可能出现的错误,比如密钥不匹配、加密失败等,并进行适当的错误...
iOS加密解密大全(MD5,SHA,Base64等) Encrypt/Decrypt: AES. Hash: MD5, SHA(SHA1, SHA224, SHA256, SHA384, SHA512). Encode/Decode: Base64, Hex.
加密后的数据通常会以Base64编码的形式发送到服务器,以确保传输过程中不受影响。在PHP端,我们可以使用openssl扩展来解密这些数据。以下是一个PHP解密示例: ```php function aes_decrypt($encrypted, $key) { $...
Base64和MD5是两种常见的数据处理方式,常用于加密和编码。在这个压缩包文件中,"Class_09_Secrity_CJL"可能包含了关于这两种技术的详细讲解和示例代码。 1. **Base64编码**:Base64是一种将二进制数据转化为可打印...
本篇将详细介绍三种常见的iOS加密方式:Base64编码、MD5哈希以及更高级的AES加密。 一、Base64编码 Base64是一种用于在网络上传输二进制数据的编码方式。它将任意可打印字符转换为一个特定的4字符长度的字符串,...
本文将详细探讨标题中提到的五种加密算法:RSA、AES、DES、MD5以及Base64,并结合描述,了解它们在iOS中的应用。 1. **RSA**:RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman于1977年提出。...
在实际应用中,如果需要保护数据安全,应当使用专业的加密算法,如AES、RSA等,而Base64更适合用于数据格式转换和网络传输中的编码需求。对于标签中的"ios",这意味着这些Base64操作是在iOS平台上进行的,开发者需要...
标题"demo~ios-md5等"和描述中提到的"iOS常用加密方法(aes、md5、base64)"涉及到的是三种常见的加密技术:MD5、AES和Base64。下面将详细解释这些加密方法以及它们在iOS中的应用。 1. **MD5(Message-Digest ...
我们可以预想JKCommonFunc.h中会定义一个类(例如`JKBase64Util`),声明了Base64编码和解码的相关方法,如`+ (NSString *)base64Encode:(NSData *)data`和`+ (NSData *)base64Decode:(NSString *)base64String`。...