├── 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 --------------------------------------------------------------------------------