- (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. SpringCloud源码地址

    SpringCloud实战源代码 https://github.com/springcloud/spring-cloud-code.git

  2. 安装MySQL for Windows 数据库

    在官网下载MySql数据库windows版本:http://dev.mysql.com/downloads/file/?id=459075 下载到本地解压出来,如下图: 复制上面目录下的my-defa ...

  3. Leetcode 321.拼接最大数

    拼接最大数 给定长度分别为 m 和 n 的两个数组,其元素由 0-9 构成,表示两个自然数各位上的数字.现在从这两个数组中选出 k (k <= m + n) 个数字拼接成一个新的数,要求从同一个 ...

  4. bzoj 1787 Meet 紧急集合

    Meet 紧急集合 这个题是在脖子oj(清北某奆佬给起的名字)八中oj(大视野在线评测)上的. 给出bzoj链接. 这个题还是求最近公共祖先的问题. 而该题不同于别的题,它是需要求三个点的最近公共祖先 ...

  5. ST 表学习

    作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例 举例: 给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1. 方法:ST算法分成两部分:离线预处 ...

  6. 指针与数组的对比(——选自:C++内存管理技术内幕)

    数组: 数组要么是在静态存储区上创建(如全局数组),要么是在栈上创建的.数组名代表着 段连续的内存,其地址和容量在生命周期内是不会改变的,而只能改变其数组内容. 指针: 指针是一种指针类型的变量,变量 ...

  7. Gearman 初窥【转载】

    Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相 比,Gearman更偏向于任务分发功能.它的任务分布非常简单,简单得可以只需要用脚本即可完成.Gearman最初用于Live ...

  8. RedisDesktopManager 踩坑之旅

    虚拟机上装了redis, 本地Windows的RedisDesktopManager  connect failed. 解决方法: 1.修改 redis.conf 文件 bind 127.0.0.1 ...

  9. ***iOS学习之Table View的简单使用和DEMO示例(共Plain普通+Grouped分组两种)

    Table View简单描述: 在iPhone和其他iOS的很多程序中都会看到Table View的出现,除了一般的表格资料展示之外,设置的属性资料往往也用到Table View,Table View ...

  10. 前端开发数据mock神器 -- xl_mock

    1.为什么要实现数据 mock 要理解为什么要实现数据 mock,我们可以提供几个场景来解释, 1.现在的开发很多都是前后端分离的模式,前后端的工作是不同的,当我们前端界面已经完成,但是后端的接口迟迟 ...