创建iOS RIPEMD-160(RIPEMD160) pod库

CB_RIPEMD

项目地址:
https://github.com/caobo56/CB_RIPEMD

使用方式:

pod  'CB_RIPEMD'

目前版本为(0.9.0)

CB_RIPEMD是对RIPEMD算法的OC基础pod库,目前只有RIPEMD-160。
是从CoreBitcoin 项目摘出来的,目的是方便查找RIPEMD-160(RIPEMD160)。
我之前的CBBase58也有这部分代码,但单独放出来方便查找。
RIPEMD-160的算法是在 NSData+Hashing.h 中
NSData+Hashing.h 在项目的CB_RIPEMD/RIPEMD/路径下

下面是 NSData+Hashing.h 的接口层

//
//  NSData+Hashing.h
//  BitcoinSwift
//
//  Created by Kevin Greene on 6/19/14.
//  Copyright (c) 2014 DoubleSha. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSData (Hashing)

/// Returns the SHA-256 hash of self.
- (NSData *)SHA256Hash;

/// Returns the RIPEMD-160 hash of self.
- (NSData *)RIPEMD160Hash;

/// Performs the HMAC512-SHA256 algorithm on self using key and stores the result in digest.
- (void)HMACSHA512WithKey:(NSData *)key digest:(NSMutableData *)digest;

@end

目前该 repo 只有 RIPEMD-160

计划是将 RIPEMD 下的相关算法都集成一下,包括(128、160、256和320),回头慢慢补充更新。

RIPEMD算法

RIPEMD(RACE Integrity Primitives Evaluation Message Digest,RACE原始完整性校验消息摘要),是Hans Dobbertin等3人在md4,md5的基础上,于1996年提出来的。算法共有4个标准128、160、256和320,其对应输出长度分别为16字节、20字节、32字节和40字节。不过,让人难以致信的是RIPEMD的设计者们根本就没有真正设计256和320位这2种标准,他们只是在128位和160位的基础上,修改了初始参数和s-box来达到输出为256和320位的目的。所以,256位的强度和128相当,而320位的强度和160位相当。RIPEMD建立在md的基础之上,所以,其添加数据的方式和md5完全一样。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于CBBase58 项目github地址: 从 CoreBitcoin 项目摘出来的base58部分代码,可以直...
    曹波波阅读 5,353评论 2 0
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,420评论 30 472
  • 前言 《图解密码技术》一书介绍了很多关于密码的知识,通读一遍需要不少时间。为了方便学习,我对书中关键的部分进行了总...
    咖枯阅读 12,091评论 1 25
  • 马老师专栏,讲述的关于自言自语的文章。 在我们的日常生活中,每个人都有过自言自语的时候,不管是有事情要跟别人交流的...
    抓瞎的猫阅读 3,873评论 1 1

友情链接更多精彩内容