Git Product home page Git Product logo

nsuserdefaults-sevensecuritylayers's Introduction

NSUserDefaults+SevenSecurityLayers.h

  • A category which provides an encryption layer for NSUserDefaults to securely save data .
  • Using strong AES 356-bit encryption

####Benefit:

* Secure user data just by one line of code.
* Support obfuscating your key in binary source
* Able to save data without encryption
* Enable to handle exceptional case via built-in NOTIFICATION
* Enable using standardUserDefaults as well as securedUserDefaults parallelly

How to use

Note: Remember to install dependency first


In the implementation file, import NSUserDefaults+SevenSecurityLayers.h

#import "NSUserDefaults+SevenSecurityLayers.h"

Initialize a secured UserDefaults with a secret key.

//Recommend: Should put the secret key in implementation file to secure your key.
//Warning: Must specify the secret key before using or you get **Exception**

NSUserDefault *pref = [[NSUserDefault securedUserDefaults] setSecretKey:@"Your secret key"];

// >>> DONE! That's it, a secured storage has been created already for you to save any data later. <<<
//Demonstrate saving data

[pref setBool:YES forKey:@"DataIsSecured"];
[pref setString:@"AES 356-bit" forKey:@"KindOfEncryption"];
[pref setString:@"v1.2.0 available" forKey:@"ObfuscateSecretKey"];
[pref setString:@"Able to save data without encryption" forKey:@"KeepOrigin"];
...
[pref synchronize];
//Demonstrate retrieving data

bool yourBool = [pref boolForKey:@"DataIsSecured"];
NSString * yourString = [pref stringForKey:@"KindOfEncrytion"];
...

###Advanced usage

  • v1.2.0 available

  • Obfuscate your secret key

    Shouldn't use this NSString * theSecretKey = @"putYourKeyHere";

    Try this way ๐Ÿ‘‰ NSString * theSecretKey = @"".p.u.t.Y.o.u.r.K.e.y.H.e.r.e;

  • Store data without encryption

    `[pref setObject:@"yourValue" forKey:@"yourKey.nonSecured"];`
    
    Or
    
    `[pref setObject:@"yourValue" forKey:@"yourKey".nonSecured];`
    
  • Migrate data to secured storage

    `[NSUserDefaults migrate:[NSUserDefaults standardUserDefaults] to:pref clearSource:YES];`
    

Supported NOTIFICATION Events

  • NOTIFICATION_CANNOT_RETRIEVE_ENCRYPTED_DATA
  • NOTIFICATION_CANNOT_STORE_ENCRYPTED_DATA
  • NOTIFICATION_SECRET_KEY_NOT_SET
  • NOTIFICATION_STORED_DATA_HAS_BEEN_VIOLATED

Supported Encryption Types

Seven Security Layers Solution supports the following property types:

  • NSInteger
  • NSString
  • NSArray
  • string+array
  • NSDictionary
  • NSURL
  • NSData
  • BOOL
  • float
  • double

Contact

Email: [email protected]

###Thanks to

MIT License

###Dependencies

###Dependencies Installation

  1. git:
$ git clone git://github.com/kelp404/CocoaSecurity.git
$ cd CocoaSecurity
$ git submodule update --init
  1. CocoadPods:
    add Podfile in your project path
platform :ios
pod 'CocoaSecurity'
$ pod install

nsuserdefaults-sevensecuritylayers's People

Contributors

haikieu avatar

Watchers

Cuong Vo avatar

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.