{"id":19458036,"url":"https://github.com/cycleuser/echorev","last_synced_at":"2026-05-16T10:31:47.173Z","repository":{"id":235547937,"uuid":"738062845","full_name":"cycleuser/EchoRev","owner":"cycleuser","description":"a GUI tool to help you reverse your input text.","archived":false,"fork":false,"pushed_at":"2024-01-02T10:29:09.000Z","size":18703,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-23T20:16:04.789Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cycleuser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-01-02T10:28:33.000Z","updated_at":"2024-04-23T20:16:08.123Z","dependencies_parsed_at":"2024-04-23T20:26:08.065Z","dependency_job_id":null,"html_url":"https://github.com/cycleuser/EchoRev","commit_stats":{"total_commits":35,"total_committers":2,"mean_commits":17.5,"dds":0.08571428571428574,"last_synced_commit":"58304e9e04b8380e5af8813ee9589943b6dbd294"},"previous_names":["cycleuser/echorev"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleuser%2FEchoRev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleuser%2FEchoRev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleuser%2FEchoRev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleuser%2FEchoRev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cycleuser","download_url":"https://codeload.github.com/cycleuser/EchoRev/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240662484,"owners_count":19837367,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-10T17:25:08.585Z","updated_at":"2026-05-16T10:31:47.128Z","avatar_url":"https://github.com/cycleuser.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EchoRev: A Linguistic Tool for Customizing Text Direction and Encryption\n\nEchoRev is a unsophisticated GUI tool designed to assist in reversing text direction and encrypting/decrypting text. This tool is particularly useful for linguists and language enthusiasts who deal with the complexities of different writing systems. Some languages are written from right to left, while others are written from left to right. EchoRev addresses this challenge by providing a flexible solution for converting text direction, hoping it to be a simple tool for related research and language processing.\n\nEarlier versions have only functions in reversing text direction, but the current version has been updated to provide encryption and decryption functions.\n\n## Installation\n\nThe earlier version of this tool was developed using PyQt5, but the current version has been updated to use PySide6, a Qt binding for Python that is more compatible with modern operating systems.\n\n```Bash\npip install requests\npip install pyside6\npip install cryptography\npip install echorev \n```\n\nOR adding `--user` to avoid the `EnvironmentError`\n\n```Bash\npip install requests --user  \npip install pyside6 --user  \npip install cryptography --user  \npip install echorev --user  \n```\n\nThen run the following command to start the GUI:\n\n```Bash\npython -c \"import echorev;echorev.main()\"\n```\n\n\n## Usage\n\nThe GUI has four main functions: reversing text direction, generating public and private keys for encryption and decryption, encrypting text, and decrypting text.\nAs shown in the following Figure 1, the GUI is divided into four tabs: \"Text Input\", \"Text Output\", \"Text Encrypted \", and \"Text Decrypted\". \n\n![](./img/01_MainFrame.png)\n#### Figure 1\n\n\n### Text Conversion\n\nEnter the original text in the Text Input section at the top left corner, and then the converted text in the corresponding order will be presented in the Text Output interface at the bottom left corner.\n\nThis software supports three conversion methods by default.\nThe first one, as shown in Figure 2, is to convert left-to-right text to right-to-left.\n\n![](./img/02_RightToLeft.png)\n#### Figure 2\n\nThe second one, as shown in Figure 3, converts horizontal text from left to right to vertical text, the vertical direction is from left to right.\n\n![](./img/03_Vertical_LeftToRight.png)\n#### Figure 3\n\nThe third, as shown in Figure 4, conforms to the text direction of traditional Chinese Old Chinese, where the original text is horizontal rows of text from left to right, and is converted into vertical text, the vertical direction is from right to left.\n\n![](./img/04_Vertical_RightToLeft.png)\n#### Figure 4\n\n### Generate Keys\n\nThe new version of this software adds text encryption and decryption function.\n\nFirst of all, the basic function is to generate the private key and public key of RSA, which is an asymmetric encryption algorithm, after generating it, you can decrypt it at any time by keeping your own private key, and the public key can be sent to the other party so that the other party can encrypt the cipher text and send it to themselves.\nBe sure to note that the public key should be sent to the other party, the private key to keep their own, so that the other party encrypted text with the public key, they can use their own private key to view.\n\nIf you want to send the encrypted text to the other party, you need the other party's public key to encrypt it.\n\n![](./img/05_Generate_Private_Key_To_Decrypt.png)\n#### Figure 5\n\n\nAs shown in Figure 5 is to generate the private key, Figure 6 shows is to generate the public key.\n\n![](./img/06_Generate_Public_Key_To_Crypte.png)\n#### Figure 6\n\nThere will be a corresponding prompt after successful key generation.\n\n![](./img/07_Keys_Generated.png)\n#### Figure 7\n\n### Load Keys\n\nIn addition to generating keys, you naturally need to be able to load already existing keys, making sure to take care to load the other party's public key for encryption and your own private key for decryption. As shown in Figure 8 and 9.\n\n![](./img/08_Load_Private_Key_To_Decrypt.png)\n#### Figure 8\n\n![](./img/09_Load_Public_Key_To_Crype.png)\n#### Figure 9\n\n### Encryption and Decryption\n\nAfter ensuring that the public key for encryption and the private key for decryption are loaded correctly, you can click the corresponding button to encrypt and decrypt the text, as shown in Figure 10 and 11.\n\n![](./img/10_Click_To_Crype.png)\n#### Figure 10\n\n![](./img/11_Click_To_Decrypt.png)\n#### Figure 11","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycleuser%2Fechorev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcycleuser%2Fechorev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycleuser%2Fechorev/lists"}