Giter Club home page Giter Club logo

nshash's Introduction

Objective-C NSHash

NSHash adds hashing methods to NSString and NSData.

Build Status Cocoapods Compatible Supported Platforms

How to use it

Copy the NSHash classes into your project or add this line to your Podfile:

pod 'NSHash', '~> 1.2.0'

Quick API overview

Import the the category class you need:

#import <NSHash/NSString+NSHash.h>
#import <NSHash/NSData+NSHash.h>

After that you can call MD5, MD5Data, SHA1, SHA1Data, SHA256 or SHA256Data on any NSString:

NSString* string = @"NSHash";

NSLog(@"MD5 as NSString:    %@", [string MD5]);
NSLog(@"SHA1 as NSString:   %@", [string SHA1]);
NSLog(@"SHA256 as NSString: %@", [string SHA256]);
NSLog(@"SHA512 as NSString: %@", [string SHA512]);

NSLog(@"MD5 as NSData:      %@", [string MD5Data]);
NSLog(@"SHA1 as NSData:     %@", [string SHA1Data]);
NSLog(@"SHA256 as NSData:   %@", [string SHA256Data]);
NSLog(@"SHA512 as NSData:   %@", [string SHA512Data]);

This will return a new NSString with a hex code transformed version of the hash:

MD5 as NSString:    ccbe85c2011c5fe3da7d760849c4f99e
SHA1 as NSString:   f5b17712c5d31ab49654b0baadf699561958d750
SHA256 as NSString: 84423607efac17079369134460239541285d5ff40594f9b8b16f567500162d2e
SHA512 as NSString: 927323f74dec1305f0a4822aab380268b6eab030eac4af6c881a529e610936613b0563bca84af894cff1e876522b8f721b54da9bbe3132f8de2692019e195cf8
MD5 as NSData:      <ccbe85c2 011c5fe3 da7d7608 49c4f99e>
SHA1 as NSData:     <f5b17712 c5d31ab4 9654b0ba adf69956 1958d750>
SHA256 as NSData:   <84423607 efac1707 93691344 60239541 285d5ff4 0594f9b8 b16f5675 00162d2e>
SHA512 as NSData:   <927323f7 4dec1305 f0a4822a ab380268 b6eab030 eac4af6c 881a529e 61093661 3b0563bc a84af894 cff1e876 522b8f72 1b54da9b be3132f8 de269201 9e195cf8>

Or call MD5, MD5String, SHA1, SHA1String, SHA256 or SHA256String on any NSData:

NSData* data = [@"NSHash" dataUsingEncoding:NSUTF8StringEncoding];

NSLog(@"MD5 as NSData:      %@", [data MD5]);
NSLog(@"SHA1 as NSData:     %@", [data SHA1]);
NSLog(@"SHA256 as NSData:   %@", [data SHA256]);
NSLog(@"SHA512 as NSData:   %@", [data SHA512]);

NSLog(@"MD5 as NSString:    %@", [data MD5String]);
NSLog(@"SHA1 as NSString:   %@", [data SHA1String]);
NSLog(@"SHA256 as NSString: %@", [data SHA256String]);
NSLog(@"SHA512 as NSString: %@", [data SHA512String]);

Which will return the NSData with the hash as bytes without the hex transformation:

MD5 as NSData:      <ccbe85c2 011c5fe3 da7d7608 49c4f99e>
SHA1 as NSData:     <f5b17712 c5d31ab4 9654b0ba adf69956 1958d750>
SHA256 as NSData:   <84423607 efac1707 93691344 60239541 285d5ff4 0594f9b8 b16f5675 00162d2e>
SHA512 as NSData:   <927323f7 4dec1305 f0a4822a ab380268 b6eab030 eac4af6c 881a529e 61093661 3b0563bc a84af894 cff1e876 522b8f72 1b54da9b be3132f8 de269201 9e195cf8>
MD5 as NSString:    ccbe85c2011c5fe3da7d760849c4f99e
SHA1 as NSString:   f5b17712c5d31ab49654b0baadf699561958d750
SHA256 as NSString: 84423607efac17079369134460239541285d5ff40594f9b8b16f567500162d2e
SHA512 as NSString: 927323f74dec1305f0a4822aab380268b6eab030eac4af6c881a529e610936613b0563bca84af894cff1e876522b8f721b54da9bbe3132f8de2692019e195cf8

The generated doc (still only two categories with only this few methods) is also available on cocoadocs.

nshash's People

Contributors

1024jp avatar jerolimov avatar notjosh avatar thinkmobilede avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nshash's Issues

Library name conflicts

You shouldn’t be using the NS prefix for your classes. If Apple were ever to introduce a class named NSHash, then this library would fail to compile. Even if they don’t, the use of the NS prefix could cause confusion for newbie developers. See this website for a list of unclaimed class prefixes:

http://cocoadev.com/wiki/ChooseYourOwnPrefix

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.