Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Using TripleDES Encryption [modified]

Using TripleDES Encryption [modified]

Scheduled Pinned Locked Moved C#
csharpsecurity
14 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Kodanda Pani

    Hi, You can use the following code. TripleDESCryptoServiceProvider provider = null; MemoryStream ms= null; CryptoStream cs = null; StreamWriter sw = null; try { provider = new TripleDESCryptoServiceProvider(); ms = new MemoryStream(); cs = new CryptoStream(ms,provider.CreateEncryptor(Key,Vector),CryptoStreamMode.Write); sw = new StreamWriter(cs); sw.Write(strValue); sw.Flush(); cs.FlushFinalBlock(); ms.Flush(); } catch(Exception) { //do exception handling } finally { sw.Close(); cs.Close(); ms.Close(); } Guess this will help you. Regards, Mahen

    C Offline
    C Offline
    cybersurferdev
    wrote on last edited by
    #5

    That's great, thank you. But I would like to use keys (validationKey and decryptionKey) stored in my web.config file. Also, I want to retrieve a value from the HTTP HEADERS and encrypt that. Then append the encrypted string to a URL and redirect to another page and decrypt it there.

    K 1 Reply Last reply
    0
    • C cybersurferdev

      That's great, thank you. But I would like to use keys (validationKey and decryptionKey) stored in my web.config file. Also, I want to retrieve a value from the HTTP HEADERS and encrypt that. Then append the encrypted string to a URL and redirect to another page and decrypt it there.

      K Offline
      K Offline
      Kodanda Pani
      wrote on last edited by
      #6

      Hi, If you want you can store the keys in web.config or else you can use registry etc. Store them as strings and covert them to Byte array while doing the encryption. private static void GetKeys(byte[] Key, byte[] Vector) { string[] keystring; string[] vectorstring; byte[] intKey = new byte[24]; byte[] intVector = new byte[7]; strKey = System.Configuration.ConfigurationSettings.AppSettings["Key"]; strVector = System.Configuration.ConfigurationSettings.AppSettings["Vector"]; keystring = strKey.Split(new char[]{','}); vectorstring= strVector.Split(new char[]{','}); //build the keys for(int i=0; i<23; i++) { intKey[i] = Convert.ToByte(strKey[i]); } for(int i=0; i<7; i++) { intVector[i] = Convert.ToByte(strVector[i]); } byte[] intLocalKey = {intKey[0], intKey[1], intKey[2], intKey[3], intKey[4], intKey[5], intKey[6], intKey[7], intKey[8], intKey[9], intKey[10], intKey[11], intKey[12], intKey[13], intKey[14], intKey[15], intKey[16], intKey[17], intKey[18], intKey[19], intKey[20], intKey[21], intKey[22], intKey[23]}; byte[] intLocalVec = {intVector[0], intVector[1], intVector[2], intVector[3], intVector[4], intVector[5], intVector[6], intVector[7]}; Key = intLocalKey; Vector = intLocalVec; } Regards, Mahen

      C 1 Reply Last reply
      0
      • K Kodanda Pani

        Hi, If you want you can store the keys in web.config or else you can use registry etc. Store them as strings and covert them to Byte array while doing the encryption. private static void GetKeys(byte[] Key, byte[] Vector) { string[] keystring; string[] vectorstring; byte[] intKey = new byte[24]; byte[] intVector = new byte[7]; strKey = System.Configuration.ConfigurationSettings.AppSettings["Key"]; strVector = System.Configuration.ConfigurationSettings.AppSettings["Vector"]; keystring = strKey.Split(new char[]{','}); vectorstring= strVector.Split(new char[]{','}); //build the keys for(int i=0; i<23; i++) { intKey[i] = Convert.ToByte(strKey[i]); } for(int i=0; i<7; i++) { intVector[i] = Convert.ToByte(strVector[i]); } byte[] intLocalKey = {intKey[0], intKey[1], intKey[2], intKey[3], intKey[4], intKey[5], intKey[6], intKey[7], intKey[8], intKey[9], intKey[10], intKey[11], intKey[12], intKey[13], intKey[14], intKey[15], intKey[16], intKey[17], intKey[18], intKey[19], intKey[20], intKey[21], intKey[22], intKey[23]}; byte[] intLocalVec = {intVector[0], intVector[1], intVector[2], intVector[3], intVector[4], intVector[5], intVector[6], intVector[7]}; Key = intLocalKey; Vector = intLocalVec; } Regards, Mahen

        C Offline
        C Offline
        cybersurferdev
        wrote on last edited by
        #7

        Thanks so much, you've been a really great help. But one last thing, what does the size of the Initialisation vector need to be and what characters may it store? Cos I need this for the web.config too.

        K 1 Reply Last reply
        0
        • K Kodanda Pani

          Hi, You can use the following code. TripleDESCryptoServiceProvider provider = null; MemoryStream ms= null; CryptoStream cs = null; StreamWriter sw = null; try { provider = new TripleDESCryptoServiceProvider(); ms = new MemoryStream(); cs = new CryptoStream(ms,provider.CreateEncryptor(Key,Vector),CryptoStreamMode.Write); sw = new StreamWriter(cs); sw.Write(strValue); sw.Flush(); cs.FlushFinalBlock(); ms.Flush(); } catch(Exception) { //do exception handling } finally { sw.Close(); cs.Close(); ms.Close(); } Guess this will help you. Regards, Mahen

          C Offline
          C Offline
          cybersurferdev
          wrote on last edited by
          #8

          What is the StrValue that you pass to the streamwriter?

          K 1 Reply Last reply
          0
          • C cybersurferdev

            Thanks so much, you've been a really great help. But one last thing, what does the size of the Initialisation vector need to be and what characters may it store? Cos I need this for the web.config too.

            K Offline
            K Offline
            Kodanda Pani
            wrote on last edited by
            #9

            Hi, The size is 7. Its there in the declration of the array. Regards, Mahen

            1 Reply Last reply
            0
            • C cybersurferdev

              What is the StrValue that you pass to the streamwriter?

              K Offline
              K Offline
              Kodanda Pani
              wrote on last edited by
              #10

              Hi, strValue is the text that needs to be encrypted. Regards, Mahen

              C 1 Reply Last reply
              0
              • K Kodanda Pani

                Hi, strValue is the text that needs to be encrypted. Regards, Mahen

                C Offline
                C Offline
                cybersurferdev
                wrote on last edited by
                #11

                Can I not convert the string to a byte array and then pass it to the memorystream? Won't this work too? How do I retrieve the encrypted string once the process is complete?

                K 1 Reply Last reply
                0
                • C cybersurferdev

                  Can I not convert the string to a byte array and then pass it to the memorystream? Won't this work too? How do I retrieve the encrypted string once the process is complete?

                  K Offline
                  K Offline
                  Kodanda Pani
                  wrote on last edited by
                  #12

                  Hi, In the code used to encrypt add the following statement to get the encrypted text into a string variable strRtnvalue. strRtnvalue = Convert.ToBase64String(ms.GetBuffer(),0,Convert.ToInt32(ms.Length)); Regards, Mahen

                  C 1 Reply Last reply
                  0
                  • K Kodanda Pani

                    Hi, In the code used to encrypt add the following statement to get the encrypted text into a string variable strRtnvalue. strRtnvalue = Convert.ToBase64String(ms.GetBuffer(),0,Convert.ToInt32(ms.Length)); Regards, Mahen

                    C Offline
                    C Offline
                    cybersurferdev
                    wrote on last edited by
                    #13

                    What text encoding must be used for the byte arrays? I'm using the UniCodeEncoding. But I keep getting an error that the key length is wrong for this algorithm. But my key is 48characters in length and the IV is 16cahracters in length.

                    1 Reply Last reply
                    0
                    • C cybersurferdev

                      Hi All I need to use TripleDES encyption for my Web Application. I want to store the key used for encryption in the web.config file. How would I go about choosing a key, storing the key in the web.config, retrieving the key for encryption and decryption, and then doing the encryption itself. I'm relatively new at doing cryptography in C#. Thanks:) -- modified at 2:46 Wednesday 7th June, 2006

                      L Offline
                      L Offline
                      leppie
                      wrote on last edited by
                      #14

                      Please dont reinvent the wheel. Use SSL. :|**

                      How xacc.ide transforms text to colored words on the screen
                      Intel PentuimM (aka Centrino) undervolting

                      **

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups