All Projects → talhahasanzia → android-encryption-helper

talhahasanzia / android-encryption-helper

Licence: Apache-2.0 license
🔒 [DEPRECATED] Encryption Helper library for Android API Level 18+

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to android-encryption-helper

penetration testing
🎩 [penetration testing Book], Kali Magic, Cryptography, Hash Crack, Botnet, Rootkit, Malware, Spyware, Python, Go, C|EH.
Stars: ✭ 57 (+307.14%)
Mutual labels:  encryption-decryption
Cryptool
Cryptography and high security keystore Android application tool
Stars: ✭ 42 (+200%)
Mutual labels:  keystore
cryptopocket
🔐 Encrypt anything, then Decrypt by providing a required key.
Stars: ✭ 22 (+57.14%)
Mutual labels:  encryption-decryption
WD-Decrypte
Western Digital Decryption tools
Stars: ✭ 53 (+278.57%)
Mutual labels:  encryption-decryption
keystore-go
A Go (golang) implementation of Java KeyStore encoder/decoder
Stars: ✭ 119 (+750%)
Mutual labels:  keystore
keystore-ultimate
The ultimate solution for keystore manipulation in Android
Stars: ✭ 30 (+114.29%)
Mutual labels:  keystore
Osiris-pwm
A simple and lightweight encrypted password manager written in Go.
Stars: ✭ 32 (+128.57%)
Mutual labels:  encryption-decryption
NDecrypt
Cartridge encrypt/decrypt
Stars: ✭ 22 (+57.14%)
Mutual labels:  encryption-decryption
sslcontext-kickstart
🔐 A lightweight high level library for configuring a http client or server based on SSLContext or other properties such as TrustManager, KeyManager or Trusted Certificates to communicate over SSL TLS for one way authentication or two way authentication provided by the SSLFactory. Support for Java, Scala and Kotlin based clients with examples. Av…
Stars: ✭ 295 (+2007.14%)
Mutual labels:  keystore
decrypt-qq1790749886-javanet
解密 qq1790749886/javanet 文件
Stars: ✭ 19 (+35.71%)
Mutual labels:  encryption-decryption
Veracrypt
Disk encryption with strong security based on TrueCrypt
Stars: ✭ 3,674 (+26142.86%)
Mutual labels:  encryption-decryption
Solnet
Solana's .NET SDK and integration library.
Stars: ✭ 252 (+1700%)
Mutual labels:  keystore
portecle
User friendly GUI application for creating, managing and examining keystores, keys, certificates, certificate requests, certificate revocation lists and more
Stars: ✭ 127 (+807.14%)
Mutual labels:  keystore
capbot2.0
Repository to hold code for the cap-bot varient that is being presented at the SIIC Defence Hackathon 2021.
Stars: ✭ 20 (+42.86%)
Mutual labels:  encryption-decryption
ada-keystore
Ada Keystore - protect your sensitive data with secure storage
Stars: ✭ 29 (+107.14%)
Mutual labels:  keystore
kafka-connect-transform-kryptonite
Kryptonite for Kafka is a client-side 🔒 field level 🔓 crypto library for Apache Kafka® currently focused on Kafka Connect scenarios. It's an ! UNOFFICIAL ! community project
Stars: ✭ 30 (+114.29%)
Mutual labels:  encryption-decryption
codechain-keystore-server
A private key management server for CodeChain
Stars: ✭ 14 (+0%)
Mutual labels:  keystore
hsmwiz
HSMWiz is a frontend for OpenSC, pkcs11tool and pkcs15tool to ease handling of HSM smartcards
Stars: ✭ 27 (+92.86%)
Mutual labels:  keystore
Password-Store
Saves your password with cryptography so only you can decode it.
Stars: ✭ 15 (+7.14%)
Mutual labels:  encryption-decryption
albedo
Security-centric, developer-friendly, easy-to-use delegated signer and keystore for Stellar Network
Stars: ✭ 57 (+307.14%)
Mutual labels:  keystore

Android Encryption Helper Release GitHub issues License

[DEPRECATED] Project no longer maintained. See Jetpack Security (requires minimum API 23)

Simple Encryption-Decryption Library containing helper classes for encrypting text data in Android. This will alow apps to decrypt data on runtime only (thanks to KeyStore API), making data storage more secure against concerns like reversing apk or decompilation of jars.

Release

Available Version: 0.3.1 on jitpack.io

Library Source

Jump to library source.

Getting Started

Prerequisites

Minimum API Level is 18. Since this helper is based off Keystore API.

Adding the library

In your project level gradle, add:

    maven { url "http://jitpack.io" }

In your app level gradle (4.0+), add:

    implementation 'com.github.talhahasanzia:android-encryption-helper:0.3.1'

for gradle versions below 4.0 use:

    compile 'com.github.talhahasanzia:android-encryption-helper:0.3.1'

Using in your project

  • Step 1- KeyStoreManager initialization: Initialize KeyStoreManager using init()
    KeyStoreManager.init(context);
  • Step 2- Some Data: Prepare data to be encrypted, in case of generating some random data use static method getNewRandomPhrase( numberOfChars ):
    KeyStoreManager.getNewRandomPhrase(5);
  • Step 3- Encrypt: Call static encrypt with specified Alias to start encryption.
    String encrypt=KeyStoreManager.encryptData(randomPhrase,"testAlias");
  • Step 4- Saving Encrypted Data: Now you can save this encrypted text in a file, SharedPrefs or as DB entry. This can be used later anytime by the app. And only this device specific instance of app will be able to decrypt it. (Securely)

  • Step 5- Decrypt: Once saving mechanism is decided, retrieve encrypted data and call decrypt which can be used to make data available in its original form again.

    String decrypt=KeyStoreManager.decryptData(encrypt,"testAlias");

How this works?

  • Each data (String value) is encryted using RSA public key.
  • Each data (String value) is decrypted using RSA private key.
  • Keystore provides mechanism to generate these RSA keys.
  • Provide an alias (a unique value) as string which will be used by keystore to save RSA keys against. (alias=key to retrieve RSA entry)
  • Call same alias to encrypt and decrypt. Otherwise the operation will fail.
  • If there are no RSA keys against given alias, code will create it.
  • Its important remember the alias so you get right RSA keys everytime.

Demo Project

The demo project implements a use-case where database password is securely saved in shared preferences in encrypted form. No one can open database without decrypted password. This encrypted text can only be decrypted at runtime using private keys provided by KeyStore API against specified alias.

Participating in Discussion

Head over to issues section to find out about current bugs, feature updates or release discussion. Also report any bug, or request a feature using right labels. To find out how these labels are meant to be used see Labels.md for detailed explanation of each label.

Contributing

Contributions are welcomed as long as they dont break the code. Please create an issue and have a discussion before pull request.

Hosting

Thanks to jitpack.io! Hosted at: https://jitpack.io/#talhahasanzia/android-encryption-helper/

Authors

License

This project is licensed under the Apache 2.0 License - see the LICENSE.md file for details.

Sources from Android and Android APIs are subject to the licensing terms as per Android Open Source Project (AOSP).

Acknowledgments

  • Inspiration : To avoid hefty work involved in using Keystore API.
  • Thanks to afollestad for Cipher initialization method.
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].