All Projects → mrigankgupta → MGObfuscator

mrigankgupta / MGObfuscator

Licence: other
An easy encryptor / decryptor for iOS

Programming Languages

swift
15916 projects
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to MGObfuscator

Encipherr
Open Source online AES encryption and decryption tool
Stars: ✭ 21 (+23.53%)
Mutual labels:  aes-encryption, encrypt, decrypt
secusu
SЁCU is a public API to store self-destructing data payloads with url shortener and handle anonymous chat-rooms.
Stars: ✭ 24 (+41.18%)
Mutual labels:  encrypt, decrypt
common-secure
提供一些加密算法java代码封装 包括 RSA/AES/DES/3DES/MD5/SHA/HmacSHA256
Stars: ✭ 37 (+117.65%)
Mutual labels:  encrypt, decrypt
vue-cryptojs
A small wrapper for integrating crypto-js into VueJS
Stars: ✭ 17 (+0%)
Mutual labels:  encrypt, decrypt
pagecrypt
Password Protected Single Page Applications and HTML files
Stars: ✭ 124 (+629.41%)
Mutual labels:  pbkdf2, aes-encryption
secret-img
encrypt/decrypt images 🤫
Stars: ✭ 14 (-17.65%)
Mutual labels:  encrypt, decrypt
Androidlibrary
Android library to reveal or obfuscate strings and assets at runtime
Stars: ✭ 162 (+852.94%)
Mutual labels:  string, encrypt
doctrine-extensions
Doctrine2 behavioral extension Transformable
Stars: ✭ 14 (-17.65%)
Mutual labels:  encrypt, decrypt
DataTypes
Built-in data types
Stars: ✭ 34 (+100%)
Mutual labels:  string
decrypt-ios-apps-script
Python script to SSH into your jailbroken device, decrypt an iOS App and transfer it to your local machine
Stars: ✭ 72 (+323.53%)
Mutual labels:  decrypt
pgspeck
Small block size Speck encryption in PostgreSQL
Stars: ✭ 16 (-5.88%)
Mutual labels:  encrypt
PassLock
PassLock is a medium-security password manager that encrypts passwords using Advanced Encryption Standards (AES)
Stars: ✭ 44 (+158.82%)
Mutual labels:  aes-encryption
gnirts
Obfuscate string literals in JavaScript code.
Stars: ✭ 65 (+282.35%)
Mutual labels:  string
pyas2-lib
AS2 Library for building and parsing Messages and MDNs
Stars: ✭ 33 (+94.12%)
Mutual labels:  encrypt
html-comment-regex
Regular expression for matching HTML comments
Stars: ✭ 15 (-11.76%)
Mutual labels:  string
Logolas
R package for Enrichment Depletion Logos (EDLogos) and String Logos
Stars: ✭ 25 (+47.06%)
Mutual labels:  string
String.prototype.trim
ES5 spec-compliant shim for String.prototype.trim
Stars: ✭ 13 (-23.53%)
Mutual labels:  string
obj-to-table
Create a table from an array of objects
Stars: ✭ 15 (-11.76%)
Mutual labels:  string
textics
📉 JavaScript Text Statistics that counts lines, words, chars, and spaces.
Stars: ✭ 36 (+111.76%)
Mutual labels:  string
dobbi
An open-source NLP library: fast text cleaning and preprocessing
Stars: ✭ 21 (+23.53%)
Mutual labels:  string

MGObfuscator

When we are working on apps which have lot of sensitive information (like Banking etc). We should be a lot of careful about strings. There is nice write up why (https://www.raywenderlich.com/2666-ios-app-security-and-analysis-part-1-2).

To prevent leaking of potentially sensitive data, it is not a good idea that certain strings be stored in the app's memory in plain text longer than they need to be. I want to create an obfuscation wrapper for strings. The purpose of such wrapper is to prevent sensitive data from being present in memory in unobfuscated form all the time. It will be passed to classes and functions where a string would normally be passed and when a wrapper is destroyed, the underlying obfuscated data must be completely purged from memory. it is also possible to use different obfuscation algorithms

Target MGObfuscate needs to be selected and build before running playground or Test target. Project will only compile with Xcode 10 as it is using CommonCrpto which is not shipped in former versions. I have not compiled CommonCrpto (I might do it later). Follow this link for compiling for previous versions (https://stackoverflow.com/questions/25248598/importing-commoncrypto-in-a-swift-framework)

Working: When user enters a pin/passcode, as an initialiser we will provide a salt and algorithm type. It quickly takes password and generate DrivedKey (Salted stretched Hash from PBKDF2). We can always save this in keychain if we don't want user to enter pin again (generally not in case of banking app).

Encrypt Function: public func encriptAndPurge(inputString: inout String) -> Data It takes inout parameter and quickly provide a encrypted data from derivedkey. Original string is erased after encryption.

Decrypt Function: public func decript(data: Data, result: (String) -> Void) It provides a callback with decrypted string. the scope of string is limited to Clouser. For further use user has to save it to some variable.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].