{"id":18664917,"url":"https://github.com/mazkdevf/configsaver","last_synced_at":"2025-07-14T21:34:54.954Z","repository":{"id":137785317,"uuid":"471748815","full_name":"mazkdevf/ConfigSaver","owner":"mazkdevf","description":"Open-Source Config Saver with Simple Encryption","archived":false,"fork":false,"pushed_at":"2022-03-19T21:47:03.000Z","size":6311,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-18T05:15:05.408Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mazkdevf.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,"publiccode":null,"codemeta":null}},"created_at":"2022-03-19T16:20:41.000Z","updated_at":"2022-09-02T20:50:46.000Z","dependencies_parsed_at":"2023-05-22T13:45:24.256Z","dependency_job_id":null,"html_url":"https://github.com/mazkdevf/ConfigSaver","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mazkdevf/ConfigSaver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazkdevf%2FConfigSaver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazkdevf%2FConfigSaver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazkdevf%2FConfigSaver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazkdevf%2FConfigSaver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mazkdevf","download_url":"https://codeload.github.com/mazkdevf/ConfigSaver/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazkdevf%2FConfigSaver/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261835907,"owners_count":23217124,"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-07T08:25:30.422Z","updated_at":"2025-06-25T08:33:58.380Z","avatar_url":"https://github.com/mazkdevf.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## ConfigSaver\n\n### What is ConfigSaver?,\n\n##### ConfigSaver is Easy Framework to save username + password config, With Simple Encryption.\n\n###### ConfigSaver is 100% Open-Source Too!\n\n-------\n\n#### What Nuget Packages does ConfigSaver use?\n\n- ###### Newtonsoft.Json - 13.0.1\n\n- ###### Eramake ECrypto - 1.1.6\n\n--------------\n\n##### To do List\n\n- [ ] Better Encryption\n\n- [ ] License / Key Saving\n\n-------------\n\nC-Sharp Console Example\n\n```cs\nusing System;\nusing ConfigSaver;\n\nnamespace ConfigSaverTest\n{\n    class Program\n    {\n        static void Main(string[] args)\n        {\n\n            /// Read Config Saving Path\n            CF.readConfigPath(\"eUe8vgM3ivJDe\"); // Requires Key - eUe8vgM3ivJDe\n            /// If Key is \u003e NOT \u003c ^^^ It will return value \"Key is wrong..\"\n\n\t    /// Read Config Values - Will return \"Config File Not Found....\" if you haven't created config.\n\t    string username = CF.js(\"user\"); // Will Return Username\n\t    string password = CF.js(\"pass\"); // Will Return Password\n\n            /// Create Config [\"username\", \"password\"] non encrypted\n            CF.CreateConfig(\"mazkdevftest\", \"passwordi$@£@3£12\");\n            /// It will create Config file with Eramake ECrypto Encryption\n            /// HL7nXvs+j2w4cK0NNs2pUTSDYc4UVJjb628lTn/dvl+tB/QueinrXGdVasfGoPdV1D70dMSOFzbZgAgd6gS10MVksc875+O0vWmA5hFm/6Y=\n\n            Console.ReadLine();\n        }\n    }\n}\n```\n\n#### KeyAuth C-Sharp Example - [WORKS ONLY WITH THESE VERSIONS](https://github.com/mazk5145/ConfigSaver/releases)\n\n```cs\nusing System;\nusing System.Diagnostics;\nusing System.Net;\nusing System.Threading;\nusing System.Windows.Forms;\nusing ConfigSaver;\n\nnamespace KeyAuth\n{\n    class Program\n    {\n        public static api KeyAuthApp = new api(\n            name: \"\",\n            ownerid: \"\",\n            secret: \"\",\n            version: \"1.0\"\n        );\n\n        static string username;\n        static string password;\n        static string key;\n\n        static void Main(string[] args)\n        {\n\n            Console.Title = \"Loader\";\n            Console.WriteLine(\"\\n\\n Connecting..\");\n            KeyAuthApp.init();\n\n            if (!KeyAuthApp.response.success)\n            {\n                Console.WriteLine(\"\\n Status: \" + KeyAuthApp.response.message);\n                Thread.Sleep(1500);\n                Environment.Exit(0);\n            }\n            // app data\n            Console.WriteLine(\"\\n App data:\");\n            Console.WriteLine(\" Number of users: \" + KeyAuthApp.app_data.numUsers);\n            Console.WriteLine(\" Number of online users: \" + KeyAuthApp.app_data.numOnlineUsers);\n            Console.WriteLine(\" Number of keys: \" + KeyAuthApp.app_data.numKeys);\n            Console.WriteLine(\" Application Version: \" + KeyAuthApp.app_data.version);\n            Console.WriteLine(\" Customer panel link: \" + KeyAuthApp.app_data.customerPanelLink);\n            KeyAuthApp.check();\n            Console.WriteLine($\" Current Session Validation Status: {KeyAuthApp.response.message}\"); // you can also just check the status but ill just print the message\n\n            if (CF.isExisting())\n            {\n                KeyAuthApp.login(CF.js(\"user\"), CF.js(\"pass\"));\n            } else {\n                Console.WriteLine(\"\\n [1] Login\\n [2] Register\\n [3] Upgrade\\n\\n Choose option: \");\n\n                int option = int.Parse(Console.ReadLine());\n                switch (option)\n                {\n                    case 1:\n                        Console.WriteLine(\"\\n\\n Enter username: \");\n                        username = Console.ReadLine();\n                        Console.WriteLine(\"\\n\\n Enter password: \");\n                        password = Console.ReadLine();\n                        KeyAuthApp.login(username, password);\n                        break;\n                    case 2:\n                        Console.WriteLine(\"\\n\\n Enter username: \");\n                        username = Console.ReadLine();\n                        Console.WriteLine(\"\\n\\n Enter password: \");\n                        password = Console.ReadLine();\n                        Console.WriteLine(\"\\n\\n Enter license: \");\n                        key = Console.ReadLine();\n                        KeyAuthApp.register(username, password, key);\n                        break;\n                    case 3:\n                        Console.WriteLine(\"\\n\\n Enter username: \");\n                        username = Console.ReadLine();\n                        Console.WriteLine(\"\\n\\n Enter license: \");\n                        key = Console.ReadLine();\n                        KeyAuthApp.upgrade(username, key);\n                        break;\n                    default:\n                        Console.WriteLine(\"\\n\\n Invalid Selection\");\n                        Thread.Sleep(1500);\n                        Environment.Exit(0);\n                        break; // no point in this other than to not get error from IDE\n                }\n            }\n\n            if (!KeyAuthApp.response.success)\n            {\n                if (CF.isExisting()) { CF.DelConfig(); }\n\n                Console.WriteLine(\"\\n Status: \" + KeyAuthApp.response.message);\n                Thread.Sleep(1500);\n                Environment.Exit(0);\n            }\n\n            if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password))\n            { } else {\n                CF.CreateConfig(username, password);\n            }\n\n            Console.WriteLine(\"\\n Logged In!\"); // at this point, the client has been authenticated. Put the code you want to run after here\n\n            // user data\n            Console.WriteLine(\"\\n User data:\");\n            Console.WriteLine(\" Username: \" + KeyAuthApp.user_data.username);\n            Console.WriteLine(\" IP address: \" + KeyAuthApp.user_data.ip);\n            Console.WriteLine(\" Hardware-Id: \" + KeyAuthApp.user_data.hwid);\n            Console.WriteLine(\" Created at: \" + UnixTimeToDateTime(long.Parse(KeyAuthApp.user_data.createdate)));\n            if (!String.IsNullOrEmpty(KeyAuthApp.user_data.lastlogin)) // don't show last login on register since there is no last login at that point\n                Console.WriteLine(\" Last login at: \" + UnixTimeToDateTime(long.Parse(KeyAuthApp.user_data.lastlogin)));\n            Console.WriteLine(\" Your subscription(s):\");\n            for (var i = 0; i \u003c KeyAuthApp.user_data.subscriptions.Count; i++)\n            {\n                Console.WriteLine(\" Subscription name: \" + KeyAuthApp.user_data.subscriptions[i].subscription + \" - Expires at: \" + UnixTimeToDateTime(long.Parse(KeyAuthApp.user_data.subscriptions[i].expiry)) + \" - Time left in seconds: \" + KeyAuthApp.user_data.subscriptions[i].timeleft);\n            }\n\n            KeyAuthApp.check();\n            Console.WriteLine($\" Current Session Validation Status: {KeyAuthApp.response.message}\"); // you can also just check the status but ill just print the message\n            Console.WriteLine(\"\\n Closing in ten seconds...\");\n            Thread.Sleep(10000);\n            Environment.Exit(0);\n        }\n\n        public static DateTime UnixTimeToDateTime(long unixtime)\n        {\n            DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Local);\n            dtDateTime = dtDateTime.AddSeconds(unixtime).ToLocalTime();\n            return dtDateTime;\n        }\n    }\n}\n```\n\n##### KeyAuth C-Sharp Forms Example - DLL_Version : [1.15 - Release](https://github.com/mazk5145/ConfigSaver/releases/tag/Release_)\n\n```cs\nusing System.Windows.Forms;\nusing ConfigSaver; \n\n\nnamespace KeyAuth\n{\n    static class Program\n    {\n\n        /// \u003csummary\u003e\n        /// IF you are using KeyAuth Example non modifed Login form name is Login.cs \n        ///\n        /// Login. = Form Name where is KeyAuth Details\n        /// Main = Form After Login\n        /// \u003c/summary\u003e\n        static void Main()\n        {\n            Login.KeyAuthApp.init();\n            if (CF.isExisting())\n            {\n                Login.KeyAuthApp.login(CF.js(\"user\"), CF.js(\"pass\"));\n                if (Login.KeyAuthApp.response.success)\n                {\n                    Application.EnableVisualStyles();\n                    Application.SetCompatibleTextRenderingDefault(false);\n                    Application.Run(new Main());\n                }\n                else\n                {\n                    CF.DelConfig();\n                    api.error($\"Status: {Login.KeyAuthApp.response.message}\");\n                }\n            }\n            else { }\n\n            Application.EnableVisualStyles();\n            Application.SetCompatibleTextRenderingDefault(false);\n            Application.Run(new Login());\n        }\n    }\n}\n```\n\n-----------------------------\n\n#### Created for KeyAuth C-Sharp Loaders\n\n### KeyAuth - [Website](https://keyauth.win) - [Discord](https://keyauth.win/discord)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmazkdevf%2Fconfigsaver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmazkdevf%2Fconfigsaver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmazkdevf%2Fconfigsaver/lists"}