Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP .Net Security > How Many VarBinary for each Ascii Char Aes Encrypted KeySize=256,BlockSize=256

Reply
Thread Tools

How Many VarBinary for each Ascii Char Aes Encrypted KeySize=256,BlockSize=256

 
 
Phil C.
Guest
Posts: n/a
 
      02-24-2005
Hi. I'm wanting to encrypt customer name, address, etc. information using
Aes with a KeySize of 256 and a BlockSize of 256. Either for each ascii
character or say for a maximum length 50 characters for a field, how many
bytes will this generate and how do I translate
this into the number of VarBinary ???items that I allocate in my Sql Server
2000 table??

Phil
Boston, MA


 
Reply With Quote
 
 
 
 
Joe Kaplan \(MVP - ADSI\)
Guest
Posts: n/a
 
      02-25-2005
I'd suggest the best thing to do would be to try it out and see. AES uses
padding backed on the block size, so you should get consistent sizes back.
Assuming you are using UTF8 encoding to convert your plain text to a byte
array for encryption, you could potentially get variable sizes of input
data, but if all of the characters you are encoding are ASCII, then that
should be consistent as well.

You might also consider converting your encrypted data to Base64 to store in
the db. That might be easier to deal with than storing as raw binary. It
will be 4/3 the size of the original byte array, but then you can just use
varchar.

Joe K.

"Phil C." <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hi. I'm wanting to encrypt customer name, address, etc. information using
> Aes with a KeySize of 256 and a BlockSize of 256. Either for each ascii
> character or say for a maximum length 50 characters for a field, how many
> bytes will this generate and how do I translate
> this into the number of VarBinary ???items that I allocate in my Sql
> Server 2000 table??
>
> Phil
> Boston, MA
>



 
Reply With Quote
 
 
 
 
Phil C.
Guest
Posts: n/a
 
      02-25-2005
Joe,

Thanks again for the detailed advice.
VarBinary seems also somewhat nebulous to me, as the definition I get from
Robert Viera's
Sql Server 2000 Programming Book says:
"Size in Bytes: 'Varies' ", "Variable length binary data with a maximum
length of
8,000 bytes."

So lets say I use UTF8, for 50 ascii characters I would expect 50 bytes, and
from the above VarBinary
definition, this implies that I could get away with the database column as
VarBinary 1 ???

Phil


"Joe Kaplan (MVP - ADSI)" <(E-Mail Removed)> wrote
in message news:(E-Mail Removed)...
> I'd suggest the best thing to do would be to try it out and see. AES uses
> padding backed on the block size, so you should get consistent sizes back.
> Assuming you are using UTF8 encoding to convert your plain text to a byte
> array for encryption, you could potentially get variable sizes of input
> data, but if all of the characters you are encoding are ASCII, then that
> should be consistent as well.
>
> You might also consider converting your encrypted data to Base64 to store
> in the db. That might be easier to deal with than storing as raw binary.
> It will be 4/3 the size of the original byte array, but then you can just
> use varchar.
>
> Joe K.
>
> "Phil C." <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
>> Hi. I'm wanting to encrypt customer name, address, etc. information
>> using Aes with a KeySize of 256 and a BlockSize of 256. Either for each
>> ascii character or say for a maximum length 50 characters for a field,
>> how many bytes will this generate and how do I translate
>> this into the number of VarBinary ???items that I allocate in my Sql
>> Server 2000 table??
>>
>> Phil
>> Boston, MA
>>

>
>



 
Reply With Quote
 
Joe Kaplan \(MVP - ADSI\)
Guest
Posts: n/a
 
      02-25-2005
SQL is definitely not my thing and I've never used a varbinary column.

With AES, if you input 50 bytes, you should get an even multiple of 256 bits
(32 bytes) back, so I'd expect it will take 64 bytes to store 50 plain input
bytes. UTF8 should produce 50 bytes for 50 ASCII characters.

I still like the idea of using varchar and coverting your encrypted output
to base64. Then you store in SQL as a simple string. Seems easier to deal
with to me.

Joe K.

"Phil C." <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Joe,
>
> Thanks again for the detailed advice.
> VarBinary seems also somewhat nebulous to me, as the definition I get from
> Robert Viera's
> Sql Server 2000 Programming Book says:
> "Size in Bytes: 'Varies' ", "Variable length binary data with a maximum
> length of
> 8,000 bytes."
>
> So lets say I use UTF8, for 50 ascii characters I would expect 50 bytes,
> and from the above VarBinary
> definition, this implies that I could get away with the database column as
> VarBinary 1 ???
>
> Phil
>
>
> "Joe Kaplan (MVP - ADSI)" <(E-Mail Removed)> wrote
> in message news:(E-Mail Removed)...
>> I'd suggest the best thing to do would be to try it out and see. AES
>> uses padding backed on the block size, so you should get consistent sizes
>> back. Assuming you are using UTF8 encoding to convert your plain text to
>> a byte array for encryption, you could potentially get variable sizes of
>> input data, but if all of the characters you are encoding are ASCII, then
>> that should be consistent as well.
>>
>> You might also consider converting your encrypted data to Base64 to store
>> in the db. That might be easier to deal with than storing as raw binary.
>> It will be 4/3 the size of the original byte array, but then you can just
>> use varchar.
>>
>> Joe K.
>>
>> "Phil C." <(E-Mail Removed)> wrote in message
>> news:(E-Mail Removed)...
>>> Hi. I'm wanting to encrypt customer name, address, etc. information
>>> using Aes with a KeySize of 256 and a BlockSize of 256. Either for each
>>> ascii character or say for a maximum length 50 characters for a field,
>>> how many bytes will this generate and how do I translate
>>> this into the number of VarBinary ???items that I allocate in my Sql
>>> Server 2000 table??
>>>
>>> Phil
>>> Boston, MA
>>>

>>
>>

>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
New AES gem available -- fast-aes Nate Wiger Ruby 3 07-01-2010 04:12 PM
WPA AES & WPA2 AES max Wireless Networking 3 02-14-2007 03:14 PM
(const char *cp) and (char *p) are consistent type, (const char **cpp) and (char **pp) are not consistent lovecreatesbeauty C Programming 1 05-09-2006 08:01 AM
How many bits generated for each UTF8 char with 256 bit AES? Phil C. ASP .Net Security 0 04-27-2006 02:47 AM



Advertisments