加密

作者: 从容到没边的优雅 | 来源:发表于2017-03-08 13:48 被阅读26次

1: 对称密码算法 ---- AES摘要算法


分割线


2:摘要算法
摘要算法,具有单向不可逆的基本性质,速度快。
① 消息摘要算法MD5
MD5算法将任意明文(不为空)映射位32位字符串。数字签名和复杂的加密系统中都有使用,单独使用由于撞库原因安全性较低。

  • 新建NSString的分类,记得添加加密所需的头文件#import <CommonCrypto/CommonDigest.h> , NSString+MD5.h:
#import <Foundation/Foundation.h>
#import <CommonCrypto/CommonDigest.h>
 
@interface NSString (MD5)
+ (NSString *)md5To32bit:(NSString *)str;
@end ```

* 编写加密方法:

import "NSString+MD5.h"

@implementation NSString (MD5)

  • (NSString *)md5To32bit:(NSString *)str {
    const char *cStr = [str UTF8String];
    unsigned char digest[CC_MD5_DIGEST_LENGTH];
    CC_MD5( cStr, strlen(cStr),digest );
    NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
    [result appendFormat:@"%02x", digest[i]];
    return result;
    }```
  • 使用
#import "ViewController.h"
#import "NSString+MD5.h"
 
@interface ViewController ()
 
@end
 
@implementation ViewController
 
- (void)viewDidLoad {
  [super viewDidLoad];
  
  NSString *name = @"苏庆林";
   
  //加密字符串
  NSString *encypt = [NSString md5To32bit:name];
  NSLog(@"\n name: %@\n encypt: %@",name,encypt);
   // 7f7b7adc32fffe9afcaaefc1d63e8686
}

② 安全散列算法 -- SHA (貌似不再安全)

+ (NSString *)SHA1To32bit:(NSString *)str {
  const char *cStr = [str UTF8String];
  unsigned char digest[CC_SHA1_DIGEST_LENGTH];
  CC_SHA1( cStr, strlen(cStr),digest );
  NSMutableString *result = [NSMutableString stringWithCapacity: CC_SHA1_DIGEST_LENGTH];
  for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
    [result appendFormat:@"%02x", digest[i]];
  return result;
}```

3、base64  `可逆` `>ios7`
// 加密文本
NSData *sData = [@"你好China" dataUsingEncoding:NSUTF8StringEncoding];
NSString *baseStr = [sData base64EncodedStringWithOptions:0];

// 解密文本
NSData *jimiData = [[NSData alloc]initWithBase64EncodedString:baseStr options:0];   
NSString *jiemiStr = [[NSString alloc] initWithData:jimiData encoding:NSUTF8StringEncoding];

NSLog(@"加密:%@, 解密:%@", baseStr, jiemiStr); 
![Snip20170426_1.png](https://img.haomeiwen.com/i2850902/8a26ce91a26c90b0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    /******************-------******************/
    // 图片加密
    NSData *data = [NSData dataWithContentsOfFile:@"/Users/suqinglin/Desktop/timg.jpeg"];
    NSData *base64Data = [data base64EncodedDataWithOptions:0];
    [base64Data writeToFile:@"/Users/suqinglin/Desktop/jiami" atomically:YES];
    // 图片解密
    NSData *baseData = [[NSData alloc] initWithBase64EncodedData:base64Data options:0];
    [baseData writeToFile:@"/Users/suqinglin/Desktop/jiami.jpeg" atomically:YES];

相关文章

  • Android数据加密(转)

    Android数据加密之Rsa加密 Android数据加密之Aes加密 Android数据加密之Des加密 And...

  • iOS常见信息加密方式总结

    目录 MD5加密HMAC加密base64加密对称加密RSA加密 - 非对称加密 一.MD5加密 MD5加密是最常用...

  • 加密算法的理解

    加密算法按类型分类: 对称加密、非对称加密、散列算法 对称加密: 加密双方都持有加密算法及密钥 非对称加密: 加密...

  • Web开发必须了解的密码学技术

    对称加密与非对称加密 按照密钥的使用形式,加密算法可以分为对称加密和非对称加密(又叫公钥加密)。对称加密在加密和解...

  • iOS 关于加密

    常见的iOS代码加密常用加密方式包括Base64加密、MD5加密、AES加密、RSA加密等。 Base64加密 B...

  • iOS代码加密常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

  • iOS常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

  • 4.加密函数编写

    加密算法分类: md5系列加密 ,哈希算法类型 aes加密对称加密,加密/解密是一个密钥 rsa加密 非对称加密,...

  • 加密算法的应用

    加密算法的应用 [TOC] 加密算法 加密算法主要分为对称加密和非对称加密。 对称加密 对称加密采用了对称密码编码...

  • PHP加密算法

    加密技术的重点是加密算法,加密算法主要分为三类: 对称加密 非对称加密 不可逆加密 对称加密算法 加密过程: 将明...

网友评论

      本文标题:加密

      本文链接:https://www.haomeiwen.com/subject/fnmpwttx.html