- (NSString *)SHAStringWithSourceData:(NSData *)data type:(SHAType)type{

    int shaDigestLength;
switch (type) {
case SHAType_sha1: shaDigestLength = CC_SHA1_DIGEST_LENGTH; break;
case SHAType_sha224: shaDigestLength = CC_SHA224_DIGEST_LENGTH; break;
case SHAType_sha256: shaDigestLength = CC_SHA256_DIGEST_LENGTH; break;
case SHAType_sha384: shaDigestLength = CC_SHA384_DIGEST_LENGTH; break;
case SHAType_sha512: shaDigestLength = CC_SHA512_DIGEST_LENGTH; break;
default: break;
} uint8_t digest[shaDigestLength];
switch (type) {
case SHAType_sha1: CC_SHA1(data.bytes, (CC_LONG)data.length, digest); break;
case SHAType_sha224: CC_SHA224(data.bytes, (CC_LONG)data.length, digest); break;
case SHAType_sha256: CC_SHA256(data.bytes, (CC_LONG)data.length, digest); break;
case SHAType_sha384: CC_SHA384(data.bytes, (CC_LONG)data.length, digest); break;
case SHAType_sha512: CC_SHA512(data.bytes, (CC_LONG)data.length, digest); break;
default: break;
} NSMutableString* output = [NSMutableString stringWithCapacity:shaDigestLength * 2];
for(int i = 0; i < shaDigestLength; i++)
[output appendFormat:@"%02x", digest[i]]; return output;
}

  

iOS SHA加密算法的实现的更多相关文章

  1. iOS sha1加密算法

    最近在项目中使用到了网络请求签名认证的方法,于是在网上找关于OC sha1加密的方法,很快找到了一个大众使用的封装好的方法,以下代码便是 首先需要添加头文件 #import<CommonCryp ...

  2. android -------- SHA 加密算法

    安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法.能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的 ...

  3. iOS MD5加密算法

    考虑到用户账户安全,对用户的登录密码进行MD5加密 什么是MD5加密呢...懒了就不在这搬砖了,大家可以自己搜索查查,在此记录下代码,以供以后学习查询! 下面,直接上代码... // 需要倒入这个头文 ...

  4. sha加密算法

    密钥生成 公钥(e,n)  私钥(d,n) 找两个互质的大素数p和q, 计算n=p*p, f(n)=(p-1)*(q-1) 选择随机整数e(e和f(n)互质) de=f(n)mod 1 利用公钥加密 ...

  5. SHA加密算法工具类

    1.利用Apache的工具类实现加密: maven: <dependency> <groupId>commons-codec</groupId> <artif ...

  6. Android数据加密之SHA安全散列算法

    前言: 对于SHA安全散列算法,以前没怎么使用过,仅仅是停留在听说过的阶段,今天在看图片缓存框架Glide源码时发现其缓存的Key采用的不是MD5加密算法,而是SHA-256加密算法,这才勾起了我的好 ...

  7. 模块 -- 序列化 hashlib sha logging (加密 加盐 )

    模块:  一个py文件就是一个模块 模块分类: 1:内置模块,登录模块,时间模块,sys模块,os模块等等 2: 扩展模块, 3:自定义模块,自己写的py文件 python 开发效率之高:python ...

  8. IOS, Android, Java Web Rest : RSA 加密和解密问题

    IOS, Android, Java Web Rest :  RSA 加密和解密问题 一对公钥私钥可以使用 OpenSSL创建, 通常 1024位长度够了. 注意: 1. 公钥私钥是BASE64编码的 ...

  9. 第四章 消息摘要算法--SHA

    注意:本节内容主要参考自<Java加密与解密的艺术(第2版)>第6章“验证数据完整性--消息摘要算法” 4.1.SHA 原理:消息摘要长度(可以定量为加密后的字符串的长度)越长,安全性越高 ...

随机推荐

  1. LeetCode(34)Search for a Range

    题目 Given a sorted array of integers, find the starting and ending position of a given target value. ...

  2. Python数据结构--树遍历算法

    ''' 遍历是访问树的所有节点的过程,也可以打印它们的值. 因为所有节点都通过边(链接)连接,所以始终从根(头)节点开始. 也就是说,我们不能随机访问树中的一个节点. 这里介绍三种方式来遍历一棵树 - ...

  3. 【Ts 2】Nginx服务器搭建

    在项目中,首先是需要Nginx服务器作为一个图片服务器来使用.那么,久涉及到服务器的搭建.这次服务器的搭建,主要是在三个环境上进行了学习:CentOS6.2,CentOS7,和Ubuntu16.那么本 ...

  4. less的配置和使用

    less 的配置: 1.浏览器端的使用 <link rel="stylesheet/less" type="text/css" href="st ...

  5. zookeeper学习0

    参考文献: 5分钟让你了解 ZooKeeper 的功能和原理 Zookeeper专题——1.分布式事务(a概述) Zookeeper专题——2.分布式锁-基于Zookeeper的分布式锁

  6. 10.1——pair,map,set,multimap,multiset

    map和set只允许相同的键出现一次,而multimap和multiset则允许出现多次. 1. 引言——pair类型: pair需要添加头文件utility头文件 make_pair<v1,v ...

  7. poj3694+hdu2460 求桥+缩点+LCA/tarjan

    这个题使我更深理解了TARJAN算法,题意:无向图,每添加一条边后文桥的数量,三种解法:(按时间顺序),1,暴力,每每求桥,听说这样能过,我没过,用的hash判重,这次有俩个参数(n->10w, ...

  8. UESTC 1087 【二分查找】

    问了某明==shit 中文题意不解释. 因为数据的范围是1e9以内的所以我们可以通过二分的方法枚举可能的中位数. 用二分法每次判断某一数字比中位数大还是比中位数小. 判断方法是,枚举以第n个数为起点的 ...

  9. eclipse设置每次提交代码忽略target、.settings、.svn、.project文件

  10. [转]Wireshark抓包工具--TCP数据包seq ack等解读

    原文: http://blog.csdn.net/wang7dao/article/details/16805337/ ---------------------------------------- ...