{"id":13833776,"url":"https://github.com/myloveCc/NETCore.Encrypt","last_synced_at":"2025-07-10T01:32:46.157Z","repository":{"id":37390491,"uuid":"94502340","full_name":"myloveCc/NETCore.Encrypt","owner":"myloveCc","description":"NETCore encrypt and decrypt tool，Include aes，des，rsa，md5，sha1，sha256，sha384，sha512","archived":false,"fork":false,"pushed_at":"2022-12-08T06:01:29.000Z","size":180,"stargazers_count":602,"open_issues_count":13,"forks_count":157,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-07-19T11:14:03.707Z","etag":null,"topics":["aes","aps-net-core","csharp","decrypt","des","encrypt","md5","net-core","rsa","sha1"],"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/myloveCc.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}},"created_at":"2017-06-16T03:41:36.000Z","updated_at":"2024-07-19T02:47:53.000Z","dependencies_parsed_at":"2023-01-24T15:00:34.206Z","dependency_job_id":null,"html_url":"https://github.com/myloveCc/NETCore.Encrypt","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myloveCc%2FNETCore.Encrypt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myloveCc%2FNETCore.Encrypt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myloveCc%2FNETCore.Encrypt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myloveCc%2FNETCore.Encrypt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/myloveCc","download_url":"https://codeload.github.com/myloveCc/NETCore.Encrypt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":213918922,"owners_count":15657194,"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":["aes","aps-net-core","csharp","decrypt","des","encrypt","md5","net-core","rsa","sha1"],"created_at":"2024-08-04T13:00:25.647Z","updated_at":"2024-08-04T13:01:02.642Z","avatar_url":"https://github.com/myloveCc.png","language":"C#","readme":"# NETCore.Encrypt [中文文档](http://www.cnblogs.com/piscesLoveCc/p/7423205.html)\n[![NuGet](https://img.shields.io/nuget/v/NETCore.Encrypt.svg)](https://nuget.org/packages/NETCore.Encrypt)\n[![NET 6.0](https://img.shields.io/badge/.NET-6.0-brightgreen)](https://www.microsoft.com/net/core)\n[![NetStandard 2.1](https://img.shields.io/badge/NetStandard-2.1-orange.svg)](https://www.microsoft.com/net/core)\n[![license](https://img.shields.io/github/license/myloveCc/NETCore.Encrypt.svg)](https://github.com/myloveCc/NETCore.Encrypt/blob/master/License)\n[![GitHub-Actions-Img]][GitHub-Actions-Url]\n\n[GitHub-Actions-Img]:https://github.com/myloveCc/NETCore.Encrypt/workflows/test/badge.svg\n[GitHub-Actions-Url]:https://github.com/myloveCc/NETCore.Encrypt/actions\n\nNETCore encrypt and decrypt tool，Include AES，RSA，MD5，SAH1，SAH256，SHA384，SHA512 and more\n\nTo install NETCore.Encrypt, run the following command in the [Package Manager Console](https://docs.microsoft.com/zh-cn/nuget/tools/package-manager-console)\n\n\n\n## Package Manager\n```\nInstall-Package NETCore.Encrypt -Version 2.1.1\n```\n## .NET CLI\n```\ndotnet add package NETCore.Encrypt --version 2.1.1\n```\n\n## PackageReference\n```\n\u003cPackageReference Include=\"NETCore.Encrypt\" Version=\"2.1.1\" /\u003e\n```\n\n\n***\n\n# Easy to use with `EncryptProvider`\n\n## AES\n\n#### Create AES Key\n\n  ```csharp\n  var aesKey = EncryptProvider.CreateAesKey();\n  \n  var key = aesKey.Key;\n  var iv = aesKey.IV;\n  ```\n\n#### AES encrypt\n  - AES encrypt without iv (ECB mode)\n\n    ```csharp\n    var srcString = \"aes encrypt\";\n    var encrypted = EncryptProvider.AESEncrypt(srcString, key);\n\n    ```\n  - AES encrypt with iv (CBC mode)\n\n    ```csharp\n    var srcString = \"aes encrypt\";\n    var encrypted = EncryptProvider.AESEncrypt(srcString, key, iv);\n\n    ```\n  - AES encrypt bytes with iv (CBC mode)\n\n    ```csharp\n    var srcBytes = new byte[]{xxx};\n    var encryptedBytes = EncryptProvider.AESEncrypt(srcBytes, key, iv);\n\n    ```\n#### ASE decrypt\n\n  - AES decrypt without iv (ECB mode)\n    \n    ```csharp\n    var encryptedStr = \"xxxx\";\n    var decrypted = EncryptProvider.AESDecrypt(encryptedStr, key);\n    ```\n  \n  - AES decrypt with iv (CBC mode)\n   \n    ```csharp\n    var encryptedStr = \"xxxx\";\n    var decrypted = EncryptProvider.AESDecrypt(encryptedStr, key, iv);\n    ```\n\n  - AES decrypt bytes with iv (CBC mode)\n   \n    ```csharp\n    var encryptedBytes =  new byte[]{xxx};\n    var decryptedBytes = EncryptProvider.AESDecrypt(encryptedBytes, key, iv);\n    ```\n\n## DES\n\n- #### Create DES Key\n\n  ```csharp\n  \n  //des key length is 24 bit\n  var desKey = EncryptProvider.CreateDesKey();\n  \n  ```\n- #### Create DES Iv 【NEW】\n\n  ```csharp\n  \n  //des iv length is 8 bit\n  var desIv = EncryptProvider.CreateDesIv();\n  \n  ```\n\n- #### DES encrypt (ECB mode)\n\n    ```csharp\n    var srcString = \"des encrypt\";\n    var encrypted = EncryptProvider.DESEncrypt(srcString, key);\n    ```\n- #### DES encrypt bytes (ECB mode)\n   \n    ```csharp\n    var srcBytes =  new byte[]{xxx};\n    var decryptedBytes = EncryptProvider.DESEncrypt(srcBytes, key);\n    ```\n- #### DES decrypt (ECB mode)\n\n    ```csharp\n    var encryptedStr = \"xxxx\";\n    var decrypted = EncryptProvider.DESDecrypt(encryptedStr, key);\n    ```\n\n- #### DES decrypt bytes  (ECB mode)\n\n    ```csharp\n    var encryptedBytes =  new byte[]{xxx};\n    var decryptedBytes = EncryptProvider.DESDecrypt(encryptedBytes, key);\n    ```\n\n- #### DES encrypt bytes with iv (CBC mode)【NEW】\n\n    ```csharp\n    var srcBytes =  new byte[]{xxx};\n    var encrypted = EncryptProvider.DESEncrypt(srcBytes, key, iv);\n    ```\n\n- #### DES decrypt bytes with iv (CBC mode)【NEW】\n\n    ```csharp\n    var encryptedBytes =  new byte[]{xxx};\n    var encrypted = EncryptProvider.DESDecrypt(encryptedBytes, key, iv);\n    ```\n\n## RSA\n\n  - #### Enum RsaSize\n\n    ```csharp\n    public enum RsaSize\n    {\n        R2048=2048,\n        R3072=3072,\n        R4096=4096\n    }\n    ```\n  \n  - #### Create RSA Key with RsaSize\n\n    ```csharp\n    var rsaKey = EncryptProvider.CreateRsaKey();    //default is 2048\n\n\t// var rsaKey = EncryptProvider.CreateRsaKey(RsaSize.R3072);\n\n    var publicKey = rsaKey.PublicKey;\n    var privateKey = rsaKey.PrivateKey;\n    var exponent = rsaKey.Exponent;\n    var modulus = rsaKey.Modulus;\n    ```\n\t  \n  - #### Rsa Sign and Verify method\n\n    ```csharp\n\tstring rawStr = \"xxx\";\n    string signStr = EncryptProvider.RSASign(rawStr, privateKey);\n    bool   result = EncryptProvider.RSAVerify(rawStr, signStr, publicKey);\n    ```\n\n  - #### RSA encrypt\n  \n    ```csharp\n    var publicKey = rsaKey.PublicKey;\n    var srcString = \"rsa encrypt\";\n\n    \n    var encrypted = EncryptProvider.RSAEncrypt(publicKey, srcString);\n\n    // On mac/linux at version 2.0.5\n    var encrypted = EncryptProvider.RSAEncrypt(publicKey, srcString, RSAEncryptionPadding.Pkcs1);\n\n    ```\n  \n  - #### RSA decrypt\n\n    ```csharp\n    var privateKey = rsaKey.PrivateKey;\n    var encryptedStr = \"xxxx\";\n\n    var decrypted = EncryptProvider.RSADecrypt(privateKey, encryptedStr);\n\n    // On mac/linux at version 2.0.5\n    var decrypted = EncryptProvider.RSADecrypt(privateKey, encryptedStr, RSAEncryptionPadding.Pkcs1);\n    ```\n\n  - #### RSA from string \n\n    ```csharp\n    var privateKey = rsaKey.PrivateKey;\n    RSA rsa = EncryptProvider.RSAFromString(privateKey);\n    ```\n\n   - #### RSA with PEM\n\n     ```csharp\n\n\t //Rsa to pem format key\n\n\t //PKCS1 pem\n\t var pkcs1KeyTuple = EncryptProvider.RSAToPem(false);\n\t var publicPem = pkcs1KeyTuple.publicPem;\n\t var privatePem = pkcs1KeyTuple.privatePem;\n\n\t //PKCS8 pem\n\t var pkcs8KeyTuple = EncryptProvider.RSAToPem(true);\n\t publicPem = pkcs8KeyTuple.publicPem;\n\t privatePem = pkcs8KeyTuple.privatePem;\n\n\t //Rsa from pem key\n\n\t var rsa = EncryptProvider.RSAFromPem(pemPublicKey);\n\t rsa = EncryptProvider.RSAFromPem(pemPrivateKey);\n\n\t //Rsa encrypt and decrypt with pem key\n\n\t var rawStr = \"xxx\";\n\t var enctypedStr = EncryptProvider.RSAEncryptWithPem(pemPublicKey, rawStr);\n\t var decryptedStr = EncryptProvider.RSADecryptWithPem(pemPrivateKey, enctypedStr);\n\n\t ```\n   - #### RSA with PKCS #1 / PKCS #8 \n\n     ```csharp\n\n\t //Rsa to pkcs1 format key\n\n\t //PKCS1\n\t var pkcs1KeyTuple = EncryptProvider.RsaToPkcs1();\n\t var publicPkcs1 = pkcs1KeyTuple.publicPkcs1;\n\t var privatePkcs1 = pkcs1KeyTuple.privatePkcs1;\n\n\t //Rsa to pkcs8 format key\n\t \n\t //PKCS8\n\t var pkcs8KeyTuple = EncryptProvider.RsaToPkcs8();\n\t var publicPkcs8 = pkcs1KeyTuple.publicPkcs8;\n\t var privatePkcs8 = pkcs1KeyTuple.privatePkcs8;\n\n\t //Rsa from pkcs public key\n\n\t var rsa = EncryptProvider.RSAFromPublicPkcs(pkcsPublicKey);  // Pkcs #1 | Pkcs #8\n\t rsa = EncryptProvider.RSAFromPrivatePkcs1(privatePkcs1);\n\t rsa = EncryptProvider.RSAFromPrivatePkcs8(privatePkcs8);\n\t \n\t //Rsa encrypt and decrypt with pkcs key\n\t\t\n\n\n\t ```\n  ## MD5\n  \n  ```csharp\n  \n  var srcString = \"Md5 hash\";\n  var hashed = EncryptProvider.Md5(srcString);\n  \n  ```\n  \n  ```csharp\n  \n  var srcString = \"Md5 hash\";\n  var hashed = EncryptProvider.Md5(srcString, MD5Length.L16);\n  \n  ```\n  \n  ## SHA\n  \n  - #### SHA1\n    ```csharp\n    var srcString = \"sha hash\";    \n    var hashed = EncryptProvider.Sha1(srcString); \n    ```\n  - #### SHA256\n    ```csharp  \n    var srcString = \"sha hash\";    \n    var hashed = EncryptProvider.Sha256(srcString); \n    ```  \n  - #### SHA384\n    ```csharp  \n    var srcString = \"sha hash\";    \n    var hashed = EncryptProvider.Sha384(srcString); \n    ```\n  - #### SHA512\n    ```csharp\n    var srcString = \"sha hash\";    \n    var hashed = EncryptProvider.Sha512(srcString);\n    ```\n  \n  ## HMAC\n  \n  - #### HMAC-MD5\n    ```csharp\n    var key=\"xxx\";\n    var srcString = \"hmac md5 hash\";     \n    var hashed = EncryptProvider.HMACMD5(srcString,key);\n    ```\n  - #### HMAC-SHA1\n    ```csharp\n    var key=\"xxx\";\n    var srcString = \"hmac sha hash\";    \n    var hashed = EncryptProvider.HMACSHA1(srcString,key);\n    ```\n  - #### HMAC-SHA256\n    ```csharp\n    var key=\"xxx\";\n    var srcString = \"hmac sha hash\";    \n    var hashed = EncryptProvider.HMACSHA256(srcString,key);\n    ```\n  - #### HMAC-SHA384\n    ```csharp\n    var key=\"xxx\";\n    var srcString = \"hmac sha hash\";    \n    var hashed = EncryptProvider.HMACSHA384(srcString,key);\n    ```\n  - #### HMAC-SHA512\n    ```csharp\n    var key=\"xxx\";\n    var srcString = \"hmac sha hash\";    \n    var hashed = EncryptProvider.HMACSHA512(srcString，key);\n    ```\n\n  ## Base64 \n  \n  - #### Base64Encrypt\n    ```csharp\n    var srcString = \"base64 string\";    \n    var hashed = EncryptProvider.Base64Encrypt(srcString);   //default encoding is UTF-8\n    ```\n\t```csharp\n    var srcString = \"base64 string\";    \n    var hashed = EncryptProvider.Base64Encrypt(srcString,Encoding.ASCII);  \n    ```\n  - #### Base64Decrypt\n    ```csharp  \n    var encryptedStr = \"xxxxx\";    \n    var strValue = EncryptProvider.Base64Decrypt(encryptedStr);   //default encoding is UTF-8\n    ```  \n\t```csharp  \n    var encryptedStr = \"xxxxx\";    \n    var strValue = EncryptProvider.Base64Decrypt(encryptedStr,Encoding.ASCII); \n    ```  \n***\n# Easy to use hash with `EncryptExtensions`\n\n## MD5 Extensions\n\n   - ### String to MD5\n\n   ```csharp\n   var hashed=\"some string\".MD5();\n   ```\n## SHA Extensions\n\n   - ### String to SHA1\n\n   ```csharp\n   var hashed=\"some string\".SHA1();\n   ```\n   \n ### `Tips：SHA256,SHA384,SHA512 the same usage like SHA1 `\n \n ## HMACSHA Extensions\n\n   - ### String to HMACSHA1\n\n   ```csharp\n   var key=\"xxx\";\n   var hashed=\"some string\".HMACSHA1(key);\n   ```\n   \n ### `Tips：HMACSHA256,HMACSHA384,HMACSHA512 the same usage like HMACSHA1 `\n\n\n# LICENSE\n\n[MIT License](https://github.com/myloveCc/NETCore.Encrypt/blob/master/License)\n\n","funding_links":[],"categories":["Libraries, Frameworks and Tools"],"sub_categories":["Cryptography"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FmyloveCc%2FNETCore.Encrypt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FmyloveCc%2FNETCore.Encrypt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FmyloveCc%2FNETCore.Encrypt/lists"}