{"id":47621435,"url":"https://github.com/aidin36/simpletextcrypt","last_synced_at":"2026-04-01T22:14:57.777Z","repository":{"id":74196517,"uuid":"47412637","full_name":"aidin36/simpletextcrypt","owner":"aidin36","description":"An Android app which encrypts a plain text using AES256 algorithm.","archived":false,"fork":false,"pushed_at":"2026-03-20T01:10:21.000Z","size":2288,"stargazers_count":41,"open_issues_count":4,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-03-20T17:05:04.210Z","etag":null,"topics":["android","cryptography","encrypts"],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aidin36.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-12-04T15:37:34.000Z","updated_at":"2026-03-20T01:07:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"39d08fed-ff9a-4300-9b0b-1af5db26b5ef","html_url":"https://github.com/aidin36/simpletextcrypt","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/aidin36/simpletextcrypt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidin36%2Fsimpletextcrypt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidin36%2Fsimpletextcrypt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidin36%2Fsimpletextcrypt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidin36%2Fsimpletextcrypt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aidin36","download_url":"https://codeload.github.com/aidin36/simpletextcrypt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidin36%2Fsimpletextcrypt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","cryptography","encrypts"],"created_at":"2026-04-01T22:14:57.113Z","updated_at":"2026-04-01T22:14:57.768Z","avatar_url":"https://github.com/aidin36.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple Text Crypt\n\nIt's an Android app that encrypts plain texts.\nThis app does not claim any permissions, so you can trust that it cannot send\nany of your private data to anyone.\n\n## Can You Trust it?\n\nMessages produced by this app are secure and, for example, can be\nconfidently sent over a network. It uses\n[AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)\nin GCM mode with no padding for encryption. It uses\n[Argon2](https://en.wikipedia.org/wiki/Argon2) and a random Salt\nto derive a secure key from the entered passphrase.\nThis is a very powerful encryption. It also encrypts its\nsettings before storing them on the device.\n\nHowever, the app might be vulnerable to some attacks. Although it is secure\nenough to stand attacks from non-expert crackers, e.g. normal users,\nshould not be used for serious data encryption.\n\n## Why Should You Encrypt?\n\nIt's a big subject to discuss. I recommend reading these two articles:\n\n1. [Why do you need PGP?](http://www.pgpi.org/doc/whypgp/en/)\n   In this article, Phil Zimmermann compares the encryption of emails to putting\n   letters in an envelope: if you don't have anything to hide, why do you hide\n   your messages in envelopes?\n\n2. [Why we encrypt?](https://www.schneier.com/blog/archives/2015/06/why_we_encrypt.html)\n   This article tells us that we should encrypt everything, not just to protect our\n   privacy, but also to protect those activists whose lives depend on encryption.\n\n## Installation\n\nIt is recommended to install the app from\n[F-Droid](https://f-droid.org/repository/browse/?fdid=com.aidinhut.simpletextcrypt).\n\nYou can also directly download the APK from F-Droid if you don't want to install the F-Droid app.\n\n## Upgrading from 4.x to 5.x\n\nThe encryption of the settings is changed. The app should be able to detect the\nold settings and upgrade them with the new encryption algorithm. However, it's\na good idea to **back-up your passphrase**. (Well, it's generally a good idea to\nback-up encryption keys and passwords in a secure place).\n\nIf the app didn't work after upgrade, uninstall and install it again.\n\n## Decrypting with Other Apps\n\nBecause Simple Text Crypt uses standard algorithms, you can decrypt your data with any other apps\ntoo. Follow these steps.\n\nThe first `16` characters of the encrypted string is the IV. It's encoded with Base64. Extract that\nfrom the string and decode it from Base64 to bytes.\n\nYou need use Argon2 algorithm to derive a key from your passphrase. With the following arguments:\n\n```\nMode: ARGON2_ID\nSalt: The IV you extracted in the previous step\nCost In Iterations: 5\nCost In Memory: 64 * 1024\n```\n\nRemove the first `16` characters (IV) from the encrypted string. Pass the rest to your AES\ndecryption function. The AES arguments are as follows:\n\n```\nAlgorithm: AES\nTransformation: GCM\nPadding: No padding\nTag size: 128\n```\n\n## Development\n\nOpen the directory with Android Studio.\n\nFrom command line, to run the tests, start an emulator (or connect a physical phone) and execute:\n`./gradlew app:connectedAndroidTest`\n\nTo install the debug build: `./gradlew installDebug`\n\nTo build release APKs for testing on phone, open `build.gradle` file and uncomment the\n`signingConfig` line. Then call `./gradlew assembleRelease`.\n\n## Copyright\n\nCopyright (c) 2015-2026 Aidin Gharibnavaz\n\nSimpleTextCrypt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nSimpleTextCrypt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with SimpleTextCrypt. If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faidin36%2Fsimpletextcrypt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faidin36%2Fsimpletextcrypt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faidin36%2Fsimpletextcrypt/lists"}