//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. (js有关图片加载问题)dom加载完和onload事件

    引用旺旺的话...哈哈哈DOMContentLoaded事件表示页面的DOM结构绘制完成了,这时候外部资源(带src属性的)还没有加载完.而onload事件是等外部资源都加载完了就触发的.$.read ...

  2. github 学习笔记【一】

    这几天在学习github ,其实学了主要用来管理自己的项目!因为要在家里和公司两头做! 所以就开始学习使用!目前熟练几个命令,其他的一边用一遍学吧!想一举成功应该是不太可能的! 反复记忆才能更好,据说 ...

  3. ArrayList与List对象用法与区别

    比如: 代码如下 复制代码 string[] s=new string[3];//赋值s[0]="a";s[1]="b";s[2]="c"; ...

  4. js利用数组length属性清空和截短数组

    1.使用length清空数组: 代码如下 复制代码 <script>    var arr1 = ['aaa','bbbb','http://www.111cn.net'];    ale ...

  5. 《iOS开发指南》要改iOS8版本了,听听您的意见?

    <iOS开发指南>要改iOS8版本了,听听您的意见?参加问卷同学均可获得智捷课堂50元代金卡一张,同时抽取一名同学赠送即将出版的基于iOS8的<iOS开发指南>一本,欢迎大家填 ...

  6. iOS在照片上添加水印

    在做项目的时候我们需要将拍摄的照片做上标记防止图片被他人盗用,所以这就需要在照片的上面加上水印,以表示此照片的独一无二. 加水印不是要在上面添加上几个Label,而是我们要把字画到图片上成为一个整体. ...

  7. php连接到数据库

    html代码: <form action="php_mysql_add.php" method="post"> 用户名: <input typ ...

  8. 延迟加载(Lazy Load)

    一个对象,它虽然不包含所需要的所有数据,但是它知道怎么获取这些数据 设计专门的对象来把数据从DB中加载到内存中. 该对象可以完成在加载所需对象的同时,把与之相关的对象也一并加载了. 否则,必须显示加载 ...

  9. Qt 5 在Windows下 出现QApplication: No such file or directory 问题的解决办法

    解决方法是:在*.pro工程项目文件中添加一行QT += widgets,然后再编译运行就OK了.

  10. 精简DropDownList用法

    ViewBag.TypeID = new SelectList(db.TType, "ID", "Name", model.TypeID); @Html.Dro ...