• Status: Solved
• Priority: Medium
• Security: Public
• Views: 525

# calculating legth of triple DES encrypted string

I am encrypting a varchar(30) column and storing in a different column in the database.

I need to calculate what the maximum length of the encrypted text could be so that I can make sure the new column is the right size. How do I calculate the size?

I am using vb.net to do the encryption and SQL server 2005 to store the data.
0
darrenwright
• 3
• 2
1 Solution

for a 30 character string it will be approximately 36 chars. you can use the following caluculation to calculate the length n + 8 - (n % 8)
where n is the length of the source string
0

Author Commented:
I'm get back encryption strings of 88 chars so something not right
0

0

Author Commented:
I use encrypttostring function
``````        Public Overloads Function EncrypttoString(ByVal plainText As String) As String
Return Convert.ToBase64String(Encrypt(plainText))
End Function
Public Function Encrypt(ByVal plainText As String) As Byte()

Dim tdes As New TripleDESCryptoServiceProvider()
Dim encryptor As ICryptoTransform = tdes.CreateEncryptor(mvarTripleDesKey, mvarTripleIV)
Dim data As Byte() = Encoding.Unicode.GetBytes(plainText)

Return encryptor.TransformFinalBlock(data, 0, data.Length)

End Function
``````
0

you are using three conversions (for 30 chars)
1.  unicode ( 30 *2 = 60)
2.encryption ( 60 +8 (60 % 8) = 64 (63.2))
3. Base64 Encoding (88)  calculated as Base64 = ((64 + 3 - (64 MOD 3)) /3) x 4

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.