I have Encoded my string to Base64 representation and storing it in VARCHAR(MAX) column in sql 2012's db.
Now I am trying to decode the value using this:
Declare @FMoney varchar(max)
Set @FMoney= (Select FinancialMoney from AppliedWorks aw
where AppliedWorkID= 20082)
SELECT CAST( CAST( @FMoney as XML ).value('.','varbinary(max)') AS varchar(max) )
But it doesn't give me the original value and gives a long another base64 string.
Note: The value stored in db is encoded via C#.net and sent to db (anhhZWRzaGFzYjJuenVka2J1aWRqcjM1fDE1LjAw) but decoding should be performed in sql.
C# Encoding Code:
public static String Encrypt(string strData)
{
if (strData != "")
{
strData = string.Format("{0}|{1}", HttpContext.Current.Session.SessionID, strData);
SHA1Managed shaM = new SHA1Managed();
Convert.ToBase64String(shaM.ComputeHash(Encoding.ASCII.GetBytes(strData)));
Byte[] encByteData;
encByteData = ASCIIEncoding.ASCII.GetBytes(strData);
String encStrData = Convert.ToBase64String(encByteData);
return encStrData;
}
else
{
return "";
}
}
Update: I have added c#.net's decoding procedure also.
public static String Decrypt(string strData)
{
if (string.IsNullOrEmpty(strData) == false)
{
Byte[] decByteData;
decByteData = Convert.FromBase64String(strData);
String decStrData = ASCIIEncoding.ASCII.GetString(decByteData);
String[] SplitValue = decStrData.Split('|');
String ReturnValue = SplitValue[1];
return ReturnValue;
}
else
{
return "";
}
}
The c# side works fine for ENCODING and DECODING but what I am trying to do it sot encode in c# and decode in sql.