iOS-各种加密/解密算法

  • 随着互联网的迅速发展,我们的隐私越来越少,随之安全也变得极其重要.
  • 在生活中,我们不仅要保护我们的隐私,在虚拟世界,我们也需要保证隐私的安全.

我们移动端,服务于用户,就有责任保护用户的个人信息安全,下面粗略介绍几个开发中常用的解密或者解密方法:

base64

  • Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一
  • Base64编码可用于在HTTP环境下传递较长的标识信息
  • Base64 也会经常用作一个简单的“加密”来保护某些数据,而真正的加密通常都比较繁琐。即所编码的数据不会被人用肉眼所直接看到。

apple提供了基础的Base64加解密算法:

@interface NSData (NSDataBase64Encoding)
- (nullable instancetype)initWithBase64EncodedString:(NSString )base64String options:(NSDataBase64DecodingOptions)options NS_AVAILABLE(10_9, 7_0);
- (NSString )base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)options NS_AVAILABLE(10_9, 7_0);
- (nullable instancetype)initWithBase64EncodedData:(NSData )base64Data options:(NSDataBase64DecodingOptions)options NS_AVAILABLE(10_9, 7_0);
- (NSData )base64EncodedDataWithOptions:(NSDataBase64EncodingOptions)options NS_AVAILABLE(10_9, 7_0);
@end

MD5

就是把一个任意长度的字节串变换成一定长的十六进制数字串

MD5加密是单向的,只能加密不能解密.

MD5算法具有以下特点:

  • 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。

  • 2、容易计算:从原数据计算出MD5值很容易。

  • 3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

  • 4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

使用方法:

1、引入头文件 #import "MD5Util"
2、加密时调用方法:
- (NSString *)md5:(NSString *)str;

DES

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法.

可加密可解密

DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。

使用方法:

1、引入头文件 #import "DES3Util.h"
2、加密时调用类方法  
+(NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key;
3、解密时调用类方法  
+(NSString *)decryptUseDES:(NSString *)cipherText key:(NSString *)key;

AES (高级加密标准)

高级加密标准(英语:Advanced Encryption Standard,缩写:AES)

这个标准用来替代原先的DES

可加密可解密

使用方法:

1、引入头文件 #import "AES.h"
2、加密时调用方法
+ (NSString *)encrypt:(NSString *)message password:(NSString *)password;
2、解密时调用的方法
+ (NSString *)decrypt:(NSString *)base64EncodedString password:(NSString *)password;

RSA算法

优点:

  • RSA是目前最有影响力的公钥加密算法
  • RSA的安全性依赖于大数分解,所以安全性很高
  • 今天只有短的RSA钥匙才可能被强力方式解破,安全

缺点:

  • 产生密钥很麻烦
  • 速度太慢.速度一直是RSA的缺陷。一般来说只用于少量数据加密。
  • RSA的速度比对应同样安全级别的对称密码算法要慢1000倍左右。

使用方法:

1、引入头文件 #import "RSAUtil.h"
2、公钥加密时调用类方法:
+ (NSString *)encryptString:(NSString *)str publicKey:(NSString *)pubKey;
+ (NSData *)encryptData:(NSData *)data publicKey:(NSString *)pubKey;
3、私钥解密时调用类方法 
+ (NSString *)decryptString:(NSString *)str privateKey:(NSString *)privKey;
+ (NSData *)decryptData:(NSData *)data privateKey:(NSString *)privKey;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值