//MD5加密的结果为128位的二进制数.

//所以有128 / 8 = 16字节(8位一个字节).

//每八位表示两个16进制数.

//MD5 有32个16进制数.

   //语言层次的所有摘要算法步骤类似,只有加密结果的数组长度不一样.

需要导入框架: #import <CommonCrypto/CommonCrypto.h>

C语言实现加密过程:

  //明文

char *str = "I LOVE iOS";

//系统定义了一个相对应加密结果的长度(字节数).我们在使用摘要算法时,只要使用对应的宏就可以,不需要记忆.

unsigned char result[16] ;//创建存放MD5结果的数组

//开始加密过程

CC_MD5_CTX md5;

//初始化

CC_MD5_Init(&md5);

//更新加密参数

//第一个参数:MD5加密主题  第二个参数:需要机密的内容  第三个参数:要加密的长度

CC_MD5_Update(&md5, str, (CC_LONG)strlen(str));

//结束加密

CC_MD5_Final(result, &md5);

  //打印机密结果

for (int i = 0; i < 16; i++) {

printf("%02x",result[i]);

}

printf("\n");

  //系统提供MD5加密实现原理

  void AG_MD5(const void *data,CC_LONG len,unsigned char *md);

  void AG_MD5(const void *data,CC_LONG len,unsigned char *md){

  CC_MD5_CTX md5;

  CC_MD5_Init(&md5);

  CC_MD5_Update(&md5, data, len);

  CC_MD5_Final(md, &md5);

  }

  实现OC字符串对象加密

NSString *str1 = @"岁月微凉人好,回忆袭身日渐长"; //明文

const char *strChar = [str1 cStringUsingEncoding:NSUTF8StringEncoding];//将字符串转化为函数所需类型

unsigned char result[CC_MD2_DIGEST_LENGTH];//接受结果数组

//加密

CC_MD5(strChar, (CC_LONG)str1.length, result);

NSMutableString *resultString = [[NSMutableString alloc] initWithCapacity:CC_MD5_DIGEST_LENGTH];

for (int i= 0; i < CC_MD2_DIGEST_LENGTH; i++) {

//将加密结果的数组以16进制数的形式拼接到可变字符串上

[resultString appendFormat:@"%02x",result[i]];

}

NSLog(@"%@",resultString);

对文件加密与对字符串加密相同,将文件转化为二进制流(NSData)进行加密,即可.

RSA 加密

字符串加密类目

钥匙串加密文件

OC 加密的更多相关文章

  1. 24 (OC)* 加密

    一 .MD5加密 MD5加密是最常用的加密方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码. MD5主要特点是 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是 ...

  2. OC的DES加密,使与java的Cipher类用DES/CBC/PKCS5Padding方式的加密结果同样

    问题说明: 近期用到DES加密,而且要与java的Cipher类加密的结果保持一致.没研究过java的Cliper,但工作中Cipher依据DES/CBC/PKCS5Padding加密方式生成了一个字 ...

  3. oc ios 中文字符串 进行 sha1加密 错误?

    我在网上找到了一个oc版加密的工具类,但是加密中文就出现大问题 const char *cstr = [self cStringUsingEncoding:encoding]; NSData *dat ...

  4. sm4加密 解密(oc)

    前几天项目用到sm4加密解密,加密为十六进制字符串,再将十六进制字符串解密.网上百度了下,sm4是密钥长度和加密明文加密密文都为16个字节十六进制数据,网上的sm4 c语言算法很容易搜到,笔者刚开始没 ...

  5. IOS开发-OC学习-MD5加密

    MD5的全称是Message-Digest Algorithm 5. MD5加密算法为现在应用最广泛的哈希算法之一,该算法广泛应用于互联网网站的用户文件加密,能够将用户密码加密为128位的长整数.数据 ...

  6. RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密

    最近换了一份工作,工作了大概一个多月了吧.差不多得有两个月没有更新博客了吧.在新公司自己写了一个iOS的比较通用的可以架构一个中型应用的不算是框架的一个结构,并已经投入使用.哈哈 说说文章标题的相关的 ...

  7. (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题

    我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...

  8. 使用BCrypt算法加密存储登录密码用法及好处

    //导入import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; /** *使用BCrypt算法加密存储登录密码 ...

  9. iOS RSA加密解密及签名验证

    1.首先要下载openssl,这个不用说,直接官网下载或者用brew install openssl下载 2.终端生成私钥密钥 2.1生成私钥 openssl genrsa - 2.2生成密钥 ope ...

随机推荐

  1. Part 4 using entity framework

    Step1: Install entity framework using nuget package manager. Step2: Add a class file to the Models f ...

  2. Struts2_使用 Filter 作为控制器的 MVC 应用

  3. Swiper之滑块1

    之前介绍过Swiper,它是一个神奇的插件.类似于Android的触屏操作,Swiper应用于Web中也可以实现这样的效果,我们来看看(用鼠标可拖动). startSlide Integer (def ...

  4. IOS显示九宫格列表

    //总列数 ; CGFloat appW = ; CGFloat appH = ; //间隙 CGFloat maginX = (self.view.frame.size.width - totalC ...

  5. Debian下配置SSH服务器的方法

    Debian 503版本中实现的,Debian默认好像是没有ssh支持的. SSH的安装apt-get install openssh-serverapt-get install sshSSH的配置O ...

  6. Exchange之证书申请

          1.         打开EMC,选择服务器配置,然后右击新建证书   2.         输入一个好记的名称   3.         这里申请通配符证书   4.         填 ...

  7. Codevs 1014 装箱问题

    题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若 ...

  8. 求单链表倒数第m个结点

    问题:求单链表倒数第m个结点,要求不准求链表的长度,也不许对链表进行逆转 解:设置两个指针p和q,p.q指向第一个结点.让p先移动到链表的第m个结点,然后p和q同时向后移动,直到p首先到达尾结点.此时 ...

  9. HTML5+CSS3+JQuery打造自定义视频播放器

    来源:http://www.html5china.com/HTML5features/video/201109206_1994.html 简介HTML5的<video>标签已经被目前大多数 ...

  10. 身处IT的你对身边人都有哪些影响

    前不久,跟外甥一起吃饭:他明年就要中考了,我就想,这马上就到人生的关键路口了,看他自己对将来有什么想法没:就问了句:勇勇,你以后想学习哪些方面的东西或者想从事什么工作呢?他简单的说了句:我要跟你一样学 ...