Solved

C# secure / uncesure string

Posted on 2008-10-16
10
504 Views
Last Modified: 2013-12-17
I need in C# 2008 NET 2.0 simple static class  which secure / unsecure string which will be saved in text file. Will be good to be with some key, mean that with different kay to provide different secure string.

Greeting !
0
Comment
Question by:dvplayltd
  • 6
  • 2
  • 2
10 Comments
 
LVL 1

Expert Comment

by:MarkMyburgh
Comment Utility
HI
query: what do yo mean secure string?  do you have a string encripyted?
you could do something like

var Dic = new Dictionary<string, string>)()

dictionary.Add("Secure", "some string");
dictionary.Add("Unsecure", "some string");
0
 

Author Comment

by:dvplayltd
Comment Utility
Hi !

 I need class that do function crypt/ decrypt string which will be saved in text file.
0
 
LVL 1

Expert Comment

by:MarkMyburgh
Comment Utility
you could try implementing something like this
class test

{

    enum StringType

	{

        Encrypt,

        Decrypt	         

	}
 

    private static string MyString { get; set; }
 

    static string GetString(StringType type)

    {
 

        switch (type)

       {

            case StringType.Decrypt: MyString = DoDecrypt(); break;

            case StringType.Encrypt: MyString = DoEncrypt(); break;

        }

        return MyString;

    }

  

}

Open in new window

0
 
LVL 1

Expert Comment

by:MarkMyburgh
Comment Utility
or if you want to store mutliple strings
 

class test

{

    enum StringType

	{

        Encrypt,

        Decrypt	         

	}
 

    static private Dictionary<string, StringStruc> MyString { get; set; }

    

    static string GetString(string key, StringType type)

    {
 

        switch (type)

       {

            case StringType.Decrypt: 

                {

                    if (MyString[key].Encrypted)

                    {

                        MyString[key].MyString = DoDecrypt();

                    }                    

                }

            case StringType.Encrypt:

                {

                    if (!MyString[key].Encrypted)

                    {

                        MyString[key].MyString = DoEncrypt();

                    }

                }

        }

        return MyString;

    }

  

}
 

struct StringStruc

{

    public string MyString { get; set; }

    public bool Encrypted { get; set; }

}

Open in new window

0
 
LVL 1

Expert Comment

by:MarkMyburgh
Comment Utility
sorry replace
         return MyString;

with

return MyString[key].MyString;
0
6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

 
LVL 1

Expert Comment

by:MarkMyburgh
Comment Utility
its been a long day!
forgot to set the flag to true or false if the string has been encrtyped or not

class test

{

    enum StringType

    {

        Encrypt,

        Decrypt

    }
 

    static private Dictionary<string, StringStruc> MyString { get; set; }
 

    static string GetString(string key, StringType type)

    {
 

        switch (type)

        {

            case StringType.Decrypt:

                {

                    if (MyString[key].Encrypted)

                    {

                        MyString[key].MyString = DoDecrypt();

                        MyString[key].Encrypted = false;

                    }

                }

            case StringType.Encrypt:

                {

                    if (!MyString[key].Encrypted)

                    {

                        MyString[key].MyString = DoEncrypt();

                        MyString[key].Encrypted = true;

                    }

                }

        }

        return MyString[key].MyString; 

    }
 

}
 

struct StringStruc

{

    public string MyString { get; set; }

    public bool Encrypted { get; set; }

}

Open in new window

0
 
LVL 85

Expert Comment

by:Mike Tomlinson
Comment Utility
You first need to determine whether you need actual ENCRYPTION or a HASH.

(1) Encryption: The value is encoded with a key and stored somewhere.  Then you can retrieve the encoded value, decode it with the key, and you end up with the original value.  This is a TWO WAY system, otherwise known as a symmetric algorithm.  A credit card number would need encryption since you need the actual value to purchase something.  If the "key" is compromised then the data is compromised.

(2) Hashing: The value is "hashed" and converted it to a fixed length value using a hashing algorithm.  Different hash algorithms produce different lengths of hashes.  Then you store the hash somewhere.  Now you can determine if a value entered by the user is the same as the original value by comparing the hashes.  You hash the current value and see if that hash matches the original hash.  A hash is a ONE WAY system.  You CANNOT get the original value back from the hash.  Passwords are often stored as Hashes since you can't figure out what the original value was from looking at the hash.  There is no "key" that can be compromised with hashing.

0
 

Author Comment

by:dvplayltd
Comment Utility
Encryption is good enough. I will test you example soon. I hope that is full - I mean that with copy/paste will work . IN first look - I don't see code for function DoEncrypt() and DoDecrypt() ?
0
 
LVL 85

Accepted Solution

by:
Mike Tomlinson earned 500 total points
Comment Utility
0
 
LVL 1

Expert Comment

by:MarkMyburgh
Comment Utility
Hi dvplay:td
Did not have time at work to implement the encryption stuff.  have a look at the msdn link above.
else i'll try to smack something together tomorrow for you
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Suggested Solutions

Normally the drop down box control found in the .Net framework tools is able to select just one data and value at a time, which is displayed on the text area.   But what if you want to have multiple values to be selected in the drop down box? As …
Summary Displaying images in RichTextBox is a common requirement with limited solutions available. Pasting through clipboard or embedding into RTF content only support static images.  This article describes how to insert Windows control objects int…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now