{"id":29890024,"url":"https://github.com/aoxetech/aoxe.cryptography","last_synced_at":"2025-07-31T22:23:27.992Z","repository":{"id":43055183,"uuid":"115691181","full_name":"AoxeTech/Aoxe.Cryptography","owner":"AoxeTech","description":"Provide an easy way to use cryptography like AES/MD5/SHA/RSA/DSA/ECDSA/DES/TripleDES","archived":false,"fork":false,"pushed_at":"2025-05-21T13:36:02.000Z","size":316,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-31T02:37:42.168Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AoxeTech.png","metadata":{"files":{"readme":"README-zh_CN.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,"zenodo":null}},"created_at":"2017-12-29T05:48:17.000Z","updated_at":"2025-05-21T13:36:06.000Z","dependencies_parsed_at":"2024-04-01T05:37:20.681Z","dependency_job_id":"47e213d7-8b7a-4466-9fa7-80dbb09d0db8","html_url":"https://github.com/AoxeTech/Aoxe.Cryptography","commit_stats":{"total_commits":79,"total_committers":4,"mean_commits":19.75,"dds":"0.49367088607594933","last_synced_commit":"984316fe88d973da4b423509ce96daabd9fec3ed"},"previous_names":["picohex/zaabee.cryptographic","aoxetech/aoxe.cryptography","mutuduxf/zaabee.cryptographicutility","picohex/zaabee.cryptography"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/AoxeTech/Aoxe.Cryptography","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AoxeTech%2FAoxe.Cryptography","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AoxeTech%2FAoxe.Cryptography/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AoxeTech%2FAoxe.Cryptography/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AoxeTech%2FAoxe.Cryptography/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AoxeTech","download_url":"https://codeload.github.com/AoxeTech/Aoxe.Cryptography/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AoxeTech%2FAoxe.Cryptography/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268126590,"owners_count":24200290,"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","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-07-31T22:23:26.291Z","updated_at":"2025-07-31T22:23:27.964Z","avatar_url":"https://github.com/AoxeTech.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Aoxe.Cryptography\n\n[English](README.md) | 简体中文\n\n---\n\n提供使用加密算法的简便方法。此软件包支持 AES/MD5/SHA/RSA/DSA/ECDSA/DES/TripleDES 的封装和扩展方法\n\n- 对称算法\n  - AES\n  - DES\n  - RC2\n  - TripleDES\n- 非对称算法\n  - DSA\n  - ECDSA\n  - RSA\n- 哈希算法\n  - MD5\n  - SHA1\n  - SHA256\n  - SHA384\n  - SHA512\n  - SHA3-256\n  - SHA3-384\n  - SHA3-512\n  - SHAKE128\n  - SHAKE256\n  - KMAC128\n  - KMAC256\n\n## 1. 快速入门\n\n### 1.1. 安装\n\n```Shell\nPM\u003e Install-Package Aoxe.Cryptography\n```\n\n### 1.2. MD5\n\n```CSharp\nvar apple = \"apple\";\nvar md5String = apple.ToMd5String();\nvar md5Bytes = apple.ToMd5();\n```\n\n### 1.3. SHA\n\n```CSharp\nvar apple = \"apple\";\n//D0BE2DC421BE4FCD0172E5AFCEEA3970E2F3D940\nvar sha1String = apple.ToSha1String();\nvar sha1Bytes = apple.ToSha1();\n//3A7BD3E2360A3D29EEA436FCFB7E44C735D117C42D1C1835420B6B9942DD4F1B\nvar sha256String = apple.ToSha256String();\nvar sha256Bytes = apple.ToSha256();\n//3D8786FCB588C93348756C6429717DC6C374A14F7029362281A3B21DC10250DDF0D0578052749822EB08BC0DC1E68B0F\nvar sha384String = apple.ToSha384String();\nvar sha384Bytes = apple.ToSha384();\n//844D8779103B94C18F4AA4CC0C3B4474058580A991FBA85D3CA698A0BC9E52C5940FEB7A65A3A290E17E6B23EE943ECC4F73E7490327245B4FE5D5EFB590FEB2\nvar sha512String = apple.ToSha512String();\nvar sha512Bytes = apple.ToSha512();\n```\n\n### 1.4. AES\n\n```CSharp\nvar original = \"Here is some data to encrypt!\";\nvar key = AesHelper.GenerateKey();\nvar vector = AesHelper.GenerateVector();\n//Default cipher mode is CBC and padding mode is PKCS7.\nvar encrypt = original.EncryptByAes(key, vector); // Also you can use Helper like this: AesHelper.Decrypt(encrypt, key, vector);\nvar decrypt = encrypt.DecryptByAes(key, vector); // Also you can use Helper like this: AesHelper.Decrypt(encrypt, key, vector);\nvar decryptString = Encoding.UTF8.GetString(decrypt);\n```\n\n### 1.5. RC2\n\n```CSharp\nvar original = \"Here is some data to encrypt!\";\nvar key = Rc2Helper.GenerateKey();\nvar vector = Rc2Helper.GenerateVector();\n//Default cipher mode is CBC and padding mode is PKCS7.\nvar encrypt = original.EncryptByRc2(key, vector); // Also you can use Helper like this: Rc2Helper.Decrypt(encrypt, key, vector);\nvar decrypt = encrypt.DecryptByRc2(key, vector); // Also you can use Helper like this: Rc2Helper.Decrypt(encrypt, key, vector);\nvar decryptString = Encoding.UTF8.GetString(decrypt);\n```\n\n### 1.6. DES\n\n```CSharp\nvar original = \"Here is some data to encrypt!\";\nvar key = DesHelper.GenerateKey();\nvar vector = DesHelper.GenerateVector();\n//Default cipher mode is CBC and padding mode is PKCS7.\nvar encrypt = original.EncryptByDes(key, vector); // Also you can use Helper like this: DesHelper.Decrypt(encrypt, key, vector);\nvar decrypt = encrypt.DecryptByDes(key, vector); // Also you can use Helper like this: DesHelper.Decrypt(encrypt, key, vector);\nvar decryptString = Encoding.UTF8.GetString(decrypt);\n```\n\n### 1.7. TripleDES\n\n```CSharp\nvar original = \"Here is some data to encrypt!\";\nvar key = TripleDesHelper.GenerateKey();\nvar vector = TripleDesHelper.GenerateVector();\n//Default cipher mode is CBC and padding mode is PKCS7.\nvar encrypt = original.EncryptByTripleDes(key, vector); // Also you can use Helper like this: TripleDesHelper.Decrypt(encrypt, key, vector);\nvar decrypt = encrypt.DecryptByTripleDes(key, vector); // Also you can use Helper like this: TripleDesHelper.Decrypt(encrypt, key, vector);\nvar decryptString = Encoding.UTF8.GetString(decrypt);\n```\n\n### 1.8. RSA\n\n默认填充为 OaepSHA256，默认编码为 utf8\n\n```CSharp\nvar original = \"Here is some data to encrypt!\";\nvar (privateKey, publicKey) = RsaHelper.GenerateParameters();\nvar originalBytes = Encoding.UTF8.GetBytes(original);\nvar encryptBytes = originalBytes.EncryptByRsa(publicKey); // Also you can use Helper like this: RsaHelper.Encrypt(originalBytes, publicKey);\nvar decryptBytes = encryptBytes.DecryptByRsa(privateKey); // Also you can use Helper like this: RsaHelper.Decrypt(encryptBytes, privateKey);\nvar decrypt = Encoding.UTF8.GetString(decryptBytes);\nAssert.True(original, decrypt);\n```\n\n### 1.9. ECDSA\n\n默认编码为 utf8\n\n```CSharp\nvar original = \"Here is some data to encrypt!\";\n//SignData\nvar (privateKey, publicKey) = EcdsaHelper.GenerateParameters();\nvar originalBytes = EcdsaHelper.Encoding.GetBytes(original);\nvar signBytes = originalBytes.SignDataByEcdsa(privateKey, hashAlgorithm);\n//True\nvar result = originalBytes.VerifyDataByEcdsa(signBytes, publicKey, hashAlgorithm);\n```\n\n```CSharp\n//SignHash\nvar (privateKey, publicKey) = EcdsaHelper.GenerateParameters();\nvar originalBytes = EcdsaHelper.Encoding.GetBytes(original);\nvar signBytes = originalBytes.SignHashByEcdsa(privateKey);\n//True\nvar result = originalBytes.VerifyHashByEcdsa(signBytes, publicKey);\n```\n\n### 1.10. DSA\n\n默认编码为 utf8\n\n```CSharp\nvar (privateKey, publicKey) = DsaHelper.GenerateParameters();\nvar originalBytes = DsaHelper.Encoding.GetBytes(original);\nvar signature = originalBytes.CreateSignatureByDsa(privateKey);\n//True\nvar result = originalBytes.VerifySignatureByDsa(signature, publicKey);\n```\n\nThank`s for [JetBrains](https://www.jetbrains.com/) for the great support in providing assistance and user-friendly environment for my open source projects.\n\n[![JetBrains](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg?_gl=1*f25lxa*_ga*MzI3ODk2MjY0LjE2NzA0NjY4MDQ.*_ga_9J976DJZ68*MTY4OTY4NzY5OS4zNC4xLjE2ODk2ODgwMDAuNTMuMC4w)](https://www.jetbrains.com/community/opensource/#support)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoxetech%2Faoxe.cryptography","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faoxetech%2Faoxe.cryptography","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoxetech%2Faoxe.cryptography/lists"}