iOS SHA加密算法的实现

- (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;
}

  

原文地址:https://www.cnblogs.com/yangzigege/p/9227184.html

时间: 2024-10-08 19:52:18

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

iOS常用加密算法介绍和代码实践

iOS系统库中定义了软件开发中常用的加解密算法,接口为C语言形式.具体包括了以下几个大类: 1 #include <CommonCrypto/CommonCryptor.h> //常用加解密算法 2 #include <CommonCrypto/CommonDigest.h> //摘要算法 3 #include <CommonCrypto/CommonHMAC.h> 4 #include <CommonCrypto/CommonKeyDerivation.h>

iOS sha1加密算法

最近在项目中使用到了网络请求签名认证的方法,于是在网上找关于OC sha1加密的方法,很快找到了一个大众使用的封装好的方法,以下代码便是 首先需要添加头文件 #import<CommonCrypto/CommonDigest.h> 然后直接使用下面的方法就可以了 //sha1加密方式 - (NSString *) sha1:(NSString *)input { const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncodin

IOS常用加密算法

先说一下我们游戏设计时候的安全考虑吧(懒得打字,直接从设计文档中复制了,还请见谅....自己的独立游戏,所以100%的版权哈) 5.1 通过简单的URLENCODE + BASE64编码防止数据明文传输 5.2 对普通请求.返回数据,生成MD5校验(MD5中加入动态密钥),进行数据完整性(简单防篡改,安全性较低,优点:快速)校验. 5.3 对于重要数据,使用RSA进行数字签名,起到防篡改作用. 5.4 对于比较敏感的数据,如用户信息(登陆.注册等),客户端发送使用RSA加密,服务器返回使用DES

兔子--SHA加密算法

public String encrypt_SHA(String source) throws Exception { MessageDigest sha = MessageDigest.getInstance("SHA"); sha.update(source.getBytes()); return Base64.encodeToString(sha.digest(), Base64.DEFAULT); }

iOS MD5加密算法

1 //MD5加密 2 + (NSString *)md5HexDigest:(NSString*)password 3 { 4 const char *original_str = [password UTF8String]; 5 unsigned char result[CC_MD5_DIGEST_LENGTH]; 6 CC_MD5(original_str, strlen(original_str), result); 7 NSMutableString *hash = [NSMutabl

ios常见加密算法

1.MD5 //因为是使用category,所以木有参数传入啦 -(NSString *) stringFromMD5 { if(self == nil || [self length] == 0) { return nil; } const char *value = [self UTF8String]; unsigned char outputBuffer[CC_MD5_DIGEST_LENGTH]; CC_MD5(value, strlen(value), outputBuffer); N

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

注意:本节内容主要参考自<Java加密与解密的艺术(第2版)>第6章“验证数据完整性--消息摘要算法” 4.1.SHA 原理:消息摘要长度(可以定量为加密后的字符串的长度)越长,安全性越高 MD5:128位二进制摘要(32位16进制字符串)(已破解) SHA1:160位二进制摘要(40位16进制字符串)(已破解) SHA256:256位二进制摘要(64位16进制字符串)(常用,在spring security中也有使用到) 实现方式: Commons Codec(“CC”,最推荐,因为封装了J

几种常用加密算法比较

由于计算机软件的非法复制,通信的泄密.数据安全受到威胁,解密及盗版问题日益严重,甚至引发国际争端,所以在信息安全技术中,加密技术占有不可替代的位置,因此对信息加密技术和加密手段的研究与开发,受到各国计算机界的重视,发展日新月异.现在我们就几种常用的加密算法给大家比较一下. DES加密算法 DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法.DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法.这样,只有掌握了和发送方相同密钥的人才能解读由D

iOS——常用加密方式

iOS代码加密常用加密方式,常见的iOS代码加密算法包括MD5加密.AES加密.BASE64加密. 三大算法iOS代码加密是如何进行加密的: /////////////////////////////////////////////////////////////////// MD5 iOS代码加密使用方法 /////////////////////////////////////////////////////////////////// //创建MD5类,代码如下 #import <Foun