├── CryptoDBProject
├── CryptoDBProject.sln
├── CryptoDBProject.v11.suo
└── CryptoDBProject
│ ├── CryptoDBProject.dbmdl
│ ├── CryptoDBProject.sqlproj
│ └── CryptoDBProject.sqlproj.user
├── DB
├── CryptoDB.mdf
└── CryptoDB_log.ldf
├── ReadMe-StepByStep.docx
└── SqlEncryptor
├── SqlEncryptor.sln
├── SqlEncryptor.v11.suo
└── SqlEncryptor
├── Encryptor.cs
├── Properties
└── AssemblyInfo.cs
├── SqlEncryptor.csproj
├── bin
└── Debug
│ ├── SqlEncryptor.dll
│ └── SqlEncryptor.pdb
└── obj
└── Debug
├── DesignTimeResolveAssemblyReferencesInput.cache
├── SqlEncryptor.csproj.FileListAbsolute.txt
├── SqlEncryptor.csprojResolveAssemblyReference.cache
├── SqlEncryptor.dll
└── SqlEncryptor.pdb
/CryptoDBProject/CryptoDBProject.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2012
4 | Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "CryptoDBProject", "CryptoDBProject\CryptoDBProject.sqlproj", "{B7D6FD22-9C4A-4EB7-B61F-20891BB29795}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Any CPU = Debug|Any CPU
9 | Release|Any CPU = Release|Any CPU
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {B7D6FD22-9C4A-4EB7-B61F-20891BB29795}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13 | {B7D6FD22-9C4A-4EB7-B61F-20891BB29795}.Debug|Any CPU.Build.0 = Debug|Any CPU
14 | {B7D6FD22-9C4A-4EB7-B61F-20891BB29795}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
15 | {B7D6FD22-9C4A-4EB7-B61F-20891BB29795}.Release|Any CPU.ActiveCfg = Release|Any CPU
16 | {B7D6FD22-9C4A-4EB7-B61F-20891BB29795}.Release|Any CPU.Build.0 = Release|Any CPU
17 | {B7D6FD22-9C4A-4EB7-B61F-20891BB29795}.Release|Any CPU.Deploy.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/CryptoDBProject/CryptoDBProject.v11.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/CryptoDBProject/CryptoDBProject.v11.suo
--------------------------------------------------------------------------------
/CryptoDBProject/CryptoDBProject/CryptoDBProject.dbmdl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/CryptoDBProject/CryptoDBProject/CryptoDBProject.dbmdl
--------------------------------------------------------------------------------
/CryptoDBProject/CryptoDBProject/CryptoDBProject.sqlproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | CryptoDBProject
8 | 2.0
9 | 4.1
10 | {b7d6fd22-9c4a-4eb7-b61f-20891bb29795}
11 | Microsoft.Data.Tools.Schema.Sql.Sql110DatabaseSchemaProvider
12 | Database
13 |
14 |
15 | CryptoDBProject
16 | CryptoDBProject
17 | 1033, CI
18 | BySchemaAndSchemaType
19 | True
20 | v4.0
21 | CS
22 | Properties
23 | False
24 | True
25 |
26 |
27 | bin\Release\
28 | $(MSBuildProjectName).sql
29 | False
30 | pdbonly
31 | true
32 | false
33 | true
34 | prompt
35 | 4
36 |
37 |
38 | bin\Debug\
39 | $(MSBuildProjectName).sql
40 | false
41 | true
42 | full
43 | false
44 | true
45 | true
46 | prompt
47 | 4
48 |
49 |
50 |
51 | 10.0
52 |
53 | True
54 | 10.0
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/CryptoDBProject/CryptoDBProject/CryptoDBProject.sqlproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/DB/CryptoDB.mdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/DB/CryptoDB.mdf
--------------------------------------------------------------------------------
/DB/CryptoDB_log.ldf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/DB/CryptoDB_log.ldf
--------------------------------------------------------------------------------
/ReadMe-StepByStep.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/ReadMe-StepByStep.docx
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2012
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlEncryptor", "SqlEncryptor\SqlEncryptor.csproj", "{9555A1C3-1E58-4ACC-802E-2EEDC33014E2}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Any CPU = Debug|Any CPU
9 | Release|Any CPU = Release|Any CPU
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {9555A1C3-1E58-4ACC-802E-2EEDC33014E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13 | {9555A1C3-1E58-4ACC-802E-2EEDC33014E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
14 | {9555A1C3-1E58-4ACC-802E-2EEDC33014E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
15 | {9555A1C3-1E58-4ACC-802E-2EEDC33014E2}.Release|Any CPU.Build.0 = Release|Any CPU
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor.v11.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/SqlEncryptor/SqlEncryptor.v11.suo
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor/Encryptor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Data.SqlTypes;
3 | using Microsoft.SqlServer.Server;
4 | using System.Security.Cryptography;
5 | using System.Text;
6 | using System.IO;
7 |
8 |
9 | public partial class Encryptor
10 | {
11 | [SqlFunction()]
12 | public static string Encrypt(string Input, string Password, string Salt)
13 | {
14 | if (Input == null || Input.Length <= 0) return "";
15 |
16 | Rfc2898DeriveBytes keyGen = __createKeyGen(Password, Salt);
17 | ICryptoTransform transformer = __createEncryptor(keyGen);
18 | byte[] transformed = __transform(Encoding.Default.GetBytes(Input), transformer);
19 |
20 | return Convert.ToBase64String(transformed);
21 | }
22 |
23 | [SqlFunction()]
24 | public static string Decrypt(string Input, string Password, string Salt)
25 | {
26 | if (Input == null || Input.Length <= 0) return "";
27 |
28 | Rfc2898DeriveBytes keyGen = __createKeyGen(Password, Salt);
29 | ICryptoTransform transformer = __createDecryptor(keyGen);
30 | byte[] transformed = __transform(Convert.FromBase64String(Input), transformer);
31 |
32 | return Encoding.Default.GetString(transformed);
33 | }
34 |
35 | [SqlFunction()]
36 | public static string Hash(string Input)
37 | {
38 | if (Input == null || Input.Length <= 0) return "";
39 |
40 | StringBuilder result = new StringBuilder();
41 | SHA1 provider = SHA1.Create();
42 | byte[] __result = provider.ComputeHash(Encoding.Default.GetBytes(Input));
43 |
44 | foreach (Byte b in __result)
45 | result.Append(String.Format("{0:x2}", b));
46 |
47 | return result.ToString();
48 |
49 | }
50 |
51 | private static Rfc2898DeriveBytes __createKeyGen(string Password, string Salt)
52 | {
53 | return new Rfc2898DeriveBytes(Password, Encoding.Default.GetBytes(Salt));
54 | }
55 |
56 | private static ICryptoTransform __createEncryptor(Rfc2898DeriveBytes KeyGen)
57 | {
58 | TripleDES provider = TripleDES.Create();
59 | return provider.CreateEncryptor(KeyGen.GetBytes(16), KeyGen.GetBytes(16));
60 | }
61 |
62 | private static ICryptoTransform __createDecryptor(Rfc2898DeriveBytes KeyGen)
63 | {
64 | TripleDES provider = TripleDES.Create();
65 | return provider.CreateDecryptor(KeyGen.GetBytes(16), KeyGen.GetBytes(16));
66 | }
67 |
68 | private static byte[] __transform(byte[] Input, ICryptoTransform Transformer)
69 | {
70 | MemoryStream ms = new MemoryStream();
71 | byte[] result;
72 |
73 | CryptoStream writer = new CryptoStream(ms, Transformer, CryptoStreamMode.Write);
74 | writer.Write(Input, 0, Input.Length);
75 | writer.FlushFinalBlock();
76 |
77 | ms.Position = 0;
78 | result = ms.ToArray();
79 |
80 | ms.Close();
81 | writer.Close();
82 | return result;
83 | }
84 | }
85 |
86 |
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("SqlEncryptor")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("SqlEncryptor")]
13 | [assembly: AssemblyCopyright("Copyright © 2013")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("a65140f0-94e0-408b-a54a-ea71af295b27")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor/SqlEncryptor.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {9555A1C3-1E58-4ACC-802E-2EEDC33014E2}
8 | Library
9 | Properties
10 | SqlEncryptor
11 | SqlEncryptor
12 | v3.5
13 | 512
14 |
15 |
16 |
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | pdbonly
27 | true
28 | bin\Release\
29 | TRACE
30 | prompt
31 | 4
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
54 |
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor/bin/Debug/SqlEncryptor.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/SqlEncryptor/SqlEncryptor/bin/Debug/SqlEncryptor.dll
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor/bin/Debug/SqlEncryptor.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/SqlEncryptor/SqlEncryptor/bin/Debug/SqlEncryptor.pdb
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/SqlEncryptor/SqlEncryptor/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor/obj/Debug/SqlEncryptor.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
1 | C:\Users\Akshay\Desktop\RND\SqlEncryptor\SqlEncryptor\bin\Debug\SqlEncryptor.dll
2 | C:\Users\Akshay\Desktop\RND\SqlEncryptor\SqlEncryptor\bin\Debug\SqlEncryptor.pdb
3 | C:\Users\Akshay\Desktop\RND\SqlEncryptor\SqlEncryptor\obj\Debug\SqlEncryptor.csprojResolveAssemblyReference.cache
4 | C:\Users\Akshay\Desktop\RND\SqlEncryptor\SqlEncryptor\obj\Debug\SqlEncryptor.dll
5 | C:\Users\Akshay\Desktop\RND\SqlEncryptor\SqlEncryptor\obj\Debug\SqlEncryptor.pdb
6 |
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor/obj/Debug/SqlEncryptor.csprojResolveAssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/SqlEncryptor/SqlEncryptor/obj/Debug/SqlEncryptor.csprojResolveAssemblyReference.cache
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor/obj/Debug/SqlEncryptor.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/SqlEncryptor/SqlEncryptor/obj/Debug/SqlEncryptor.dll
--------------------------------------------------------------------------------
/SqlEncryptor/SqlEncryptor/obj/Debug/SqlEncryptor.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akshayblevel/SQL-CLR-Integration/a166c3f3295b16e9196dc594d7bf30a939e93ac6/SqlEncryptor/SqlEncryptor/obj/Debug/SqlEncryptor.pdb
--------------------------------------------------------------------------------