472,127 Members | 1,725 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,127 software developers and data experts.

After Converting a string from Base64 some characters are nothing.

I have encoded a string into Base64 for the purpose of encryption. I
then later decrypted it and converted it back from Base64 the final
string returns with four nothing characters.

"pass" what the result should be
"pass____ what the result is where each underline char is a nothing
char.

I am about to write a function that will remove the nothing chars butI
would like to know what is causing the problem and simply avoid it
instead.

Encoding code:

Private Shared Function EncodeBase64(ByVal message As String) As
String
Dim encodeBuffer As Byte() =
System.Text.Encoding.Unicode.GetBytes(message)
Return Convert.ToBase64String(encodeBuffer)
End Function

Decoding Code:

Private Shared Function DecodeBase64(ByVal decodeBuffer As Byte()) As
String
Return System.Text.Encoding.Unicode.GetString(decodeBuffe r)
End Function

I believe that the encryption is working as intended

DecodeBase64(Decrypt(password, crypto)) is the line that returns the
wrong string.

Thanks for any help
Jeremy

Mar 23 '07 #1
8 2706
DecodeBase64 does nothing ? You probably forgot to a call to the
appropriate FromBase64 method...

---
Patrice

"Jeremy Kitchen" <J.*********@gmail.coma écrit dans le message de news:
11*********************@l77g2000hsb.googlegroups.c om...
>I have encoded a string into Base64 for the purpose of encryption. I
then later decrypted it and converted it back from Base64 the final
string returns with four nothing characters.

"pass" what the result should be
"pass____ what the result is where each underline char is a nothing
char.

I am about to write a function that will remove the nothing chars butI
would like to know what is causing the problem and simply avoid it
instead.

Encoding code:

Private Shared Function EncodeBase64(ByVal message As String) As
String
Dim encodeBuffer As Byte() =
System.Text.Encoding.Unicode.GetBytes(message)
Return Convert.ToBase64String(encodeBuffer)
End Function

Decoding Code:

Private Shared Function DecodeBase64(ByVal decodeBuffer As Byte()) As
String
Return System.Text.Encoding.Unicode.GetString(decodeBuffe r)
End Function

I believe that the encryption is working as intended

DecodeBase64(Decrypt(password, crypto)) is the line that returns the
wrong string.

Thanks for any help
Jeremy

Mar 23 '07 #2
Jeremy Kitchen wrote:
<backposted/>

I've seen encryption algorythms that require the plain text size as a
multiple of some value to work properly. Did you check the encryption
with a text the same size of the Base64 encoded string to see if it's
not automatically padding your text? (wild, wild guess, I know)

HTH.

Regards,

Branco.
I have encoded a string into Base64 for the purpose of encryption. I
then later decrypted it and converted it back from Base64 the final
string returns with four nothing characters.

"pass" what the result should be
"pass____ what the result is where each underline char is a nothing
char.

I am about to write a function that will remove the nothing chars butI
would like to know what is causing the problem and simply avoid it
instead.

Encoding code:

Private Shared Function EncodeBase64(ByVal message As String) As
String
Dim encodeBuffer As Byte() =
System.Text.Encoding.Unicode.GetBytes(message)
Return Convert.ToBase64String(encodeBuffer)
End Function

Decoding Code:

Private Shared Function DecodeBase64(ByVal decodeBuffer As Byte()) As
String
Return System.Text.Encoding.Unicode.GetString(decodeBuffe r)
End Function

I believe that the encryption is working as intended

DecodeBase64(Decrypt(password, crypto)) is the line that returns the
wrong string.

Thanks for any help
Jeremy

Mar 23 '07 #3
Also I find a bit weird that you actually see something that is almost the
original string. Base64 should produce a much more different string.

That plus the fact that the encoding function returns a string and that the
decoding function accept a buffer would make me think that you perhaps still
have a problem between those two functions calls...

---
Patrice

"Patrice" <http://www.chez.com/scribe/a écrit dans le message de news:
uM**************@TK2MSFTNGP05.phx.gbl...
DecodeBase64 does nothing ? You probably forgot to a call to the
appropriate FromBase64 method...

---
Patrice

"Jeremy Kitchen" <J.*********@gmail.coma écrit dans le message de news:
11*********************@l77g2000hsb.googlegroups.c om...
>>I have encoded a string into Base64 for the purpose of encryption. I
then later decrypted it and converted it back from Base64 the final
string returns with four nothing characters.

"pass" what the result should be
"pass____ what the result is where each underline char is a nothing
char.

I am about to write a function that will remove the nothing chars butI
would like to know what is causing the problem and simply avoid it
instead.

Encoding code:

Private Shared Function EncodeBase64(ByVal message As String) As
String
Dim encodeBuffer As Byte() =
System.Text.Encoding.Unicode.GetBytes(message)
Return Convert.ToBase64String(encodeBuffer)
End Function

Decoding Code:

Private Shared Function DecodeBase64(ByVal decodeBuffer As Byte()) As
String
Return System.Text.Encoding.Unicode.GetString(decodeBuffe r)
End Function

I believe that the encryption is working as intended

DecodeBase64(Decrypt(password, crypto)) is the line that returns the
wrong string.

Thanks for any help
Jeremy


Mar 23 '07 #4
On Mar 23, 9:39 am, "Patrice" <http://www.chez.com/scribe/wrote:
DecodeBase64 does nothing ? You probably forgot to a call to the
appropriate FromBase64 method...

---
Patrice

"Jeremy Kitchen" <J.t.Kitc...@gmail.coma écrit dans le message de news:
1174658205.018099.79...@l77g2000hsb.googlegroups.c om...
I have encoded a string into Base64 for the purpose of encryption. I
then later decrypted it and converted it back from Base64 the final
string returns with four nothing characters.
"pass" what the result should be
"pass____ what the result is where each underline char is a nothing
char.
I am about to write a function that will remove the nothing chars butI
would like to know what is causing the problem and simply avoid it
instead.
Encoding code:
Private Shared Function EncodeBase64(ByVal message As String) As
String
Dim encodeBuffer As Byte() =
System.Text.Encoding.Unicode.GetBytes(message)
Return Convert.ToBase64String(encodeBuffer)
End Function
Decoding Code:
Private Shared Function DecodeBase64(ByVal decodeBuffer As Byte()) As
String
Return System.Text.Encoding.Unicode.GetString(decodeBuffe r)
End Function
I believe that the encryption is working as intended
DecodeBase64(Decrypt(password, crypto)) is the line that returns the
wrong string.
Thanks for any help
Jeremy
That isn't my problem it works it is just that chars with the value
of nothing are appended to what should be the result. This doens't
happen if i call the function in immediate mode. It does happen when I
assign the result to a value.

I eventually wrote the following code to get around the problem but I
would like to avoid having it in the first place.

Cleaner Code:
Private Shared Function CleanStringOfNothings(ByVal unclean As String)
As String
Dim clean As New StringBuilder(unclean.Length)
For Each c As Char In unclean
If c <Nothing Then
clean.Append(c)
End If
Next
Return clean.ToString
End Function

Mar 23 '07 #5
On Mar 23, 9:45 am, "Patrice" <http://www.chez.com/scribe/wrote:
Also I find a bit weird that you actually see something that is almost the
original string. Base64 should produce a much more different string.

That plus the fact that the encoding function returns a string and that the
decoding function accept a buffer would make me think that you perhaps still
have a problem between those two functions calls...

---
Patrice

"Patrice" <http://www.chez.com/scribe/a écrit dans le message de news:
uMsCekVbHHA.4...@TK2MSFTNGP05.phx.gbl...
DecodeBase64 does nothing ? You probably forgot to a call to the
appropriate FromBase64 method...
---
Patrice
"Jeremy Kitchen" <J.t.Kitc...@gmail.coma écrit dans le message de news:
1174658205.018099.79...@l77g2000hsb.googlegroups.c om...
>I have encoded a string into Base64 for the purpose of encryption. I
then later decrypted it and converted it back from Base64 the final
string returns with four nothing characters.
"pass" what the result should be
"pass____ what the result is where each underline char is a nothing
char.
I am about to write a function that will remove the nothing chars butI
would like to know what is causing the problem and simply avoid it
instead.
Encoding code:
Private Shared Function EncodeBase64(ByVal message As String) As
String
Dim encodeBuffer As Byte() =
System.Text.Encoding.Unicode.GetBytes(message)
Return Convert.ToBase64String(encodeBuffer)
End Function
Decoding Code:
Private Shared Function DecodeBase64(ByVal decodeBuffer As Byte()) As
String
Return System.Text.Encoding.Unicode.GetString(decodeBuffe r)
End Function
I believe that the encryption is working as intended
DecodeBase64(Decrypt(password, crypto)) is the line that returns the
wrong string.
Thanks for any help
Jeremy

I also have an overload of the Decode that accepts a string.

Here both decode functions are.
Private Shared Function DecodeBase64(ByVal message As String) As
String
Dim decodeBuffer As Byte() = Convert.FromBase64String(message)
Return DecodeBase64(decodeBuffer)
End Function

Private Shared Function DecodeBase64(ByVal decodeBuffer As Byte()) As
String
Return
CleanStringOfNothings(System.Text.Encoding.Unicode .GetString(decodeBuffer))
End Function

Mar 23 '07 #6
On Mar 23, 8:44 am, "Branco Medeiros" <branco.medei...@gmail.com>
wrote:
Jeremy Kitchen wrote:

<backposted/>

I've seen encryption algorythms that require the plain text size as a
multiple of some value to work properly. Did you check the encryption
with a text the same size of the Base64 encoded string to see if it's
not automatically padding your text? (wild, wild guess, I know)

HTH.

Regards,

Branco.
Branco - I don't think that is a wild guess at all. In fact, it was
the very though I had when reading the original post. I believe if
the OP checks his algorithm he will find that this is the root of his
issue (I've had the same thing happen to me :)

--
Tom Shelton

Mar 23 '07 #7
On Mar 23, 9:57 am, "Tom Shelton" <tom_shel...@comcast.netwrote:
On Mar 23, 8:44 am, "Branco Medeiros" <branco.medei...@gmail.com>
wrote:
Jeremy Kitchen wrote:
<backposted/>
I've seen encryption algorythms that require the plain text size as a
multiple of some value to work properly. Did you check the encryption
with a text the same size of the Base64 encoded string to see if it's
not automatically padding your text? (wild, wild guess, I know)
HTH.
Regards,
Branco.

Branco - I don't think that is a wild guess at all. In fact, it was
the very though I had when reading the original post. I believe if
the OP checks his algorithm he will find that this is the root of his
issue (I've had the same thing happen to me :)

--
Tom Shelton

Tom I checked the encryption and I am indeed padding zero bytes in the
encryption.

Thanks

Mar 23 '07 #8
So try :
MsgBox(DecodeBase64(EncodeBase64("pass")) = "pass")

Return True here so it doesn't look like the problem is the base64
encoding/decoding part. If you try a longer word would you have always twice
the number of characters ? (unicode vs ansi problem ?).

--
Patrice

"Jeremy Kitchen" <J.*********@gmail.coma écrit dans le message de news:
11**********************@l75g2000hse.googlegroups. com...
On Mar 23, 9:45 am, "Patrice" <http://www.chez.com/scribe/wrote:
Also I find a bit weird that you actually see something that is almost the
original string. Base64 should produce a much more different string.

That plus the fact that the encoding function returns a string and that
the
decoding function accept a buffer would make me think that you perhaps
still
have a problem between those two functions calls...

---
Patrice

"Patrice" <http://www.chez.com/scribe/a écrit dans le message de news:
uMsCekVbHHA.4...@TK2MSFTNGP05.phx.gbl...
DecodeBase64 does nothing ? You probably forgot to a call to the
appropriate FromBase64 method...
---
Patrice
"Jeremy Kitchen" <J.t.Kitc...@gmail.coma écrit dans le message de
news:
1174658205.018099.79...@l77g2000hsb.googlegroups.c om...
>I have encoded a string into Base64 for the purpose of encryption. I
then later decrypted it and converted it back from Base64 the final
string returns with four nothing characters.
"pass" what the result should be
"pass____ what the result is where each underline char is a nothing
char.
I am about to write a function that will remove the nothing chars butI
would like to know what is causing the problem and simply avoid it
instead.
Encoding code:
Private Shared Function EncodeBase64(ByVal message As String) As
String
Dim encodeBuffer As Byte() =
System.Text.Encoding.Unicode.GetBytes(message)
Return Convert.ToBase64String(encodeBuffer)
End Function
Decoding Code:
Private Shared Function DecodeBase64(ByVal decodeBuffer As Byte()) As
String
Return System.Text.Encoding.Unicode.GetString(decodeBuffe r)
End Function
I believe that the encryption is working as intended
DecodeBase64(Decrypt(password, crypto)) is the line that returns the
wrong string.
Thanks for any help
Jeremy

I also have an overload of the Decode that accepts a string.

Here both decode functions are.
Private Shared Function DecodeBase64(ByVal message As String) As
String
Dim decodeBuffer As Byte() = Convert.FromBase64String(message)
Return DecodeBase64(decodeBuffer)
End Function

Private Shared Function DecodeBase64(ByVal decodeBuffer As Byte()) As
String
Return
CleanStringOfNothings(System.Text.Encoding.Unicode .GetString(decodeBuffer))
End Function
Mar 23 '07 #9

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by wenmang | last post: by
5 posts views Thread by Senna | last post: by
1 post views Thread by scott | last post: by
9 posts views Thread by Jeremy Kitchen | last post: by
2 posts views Thread by joe shoemaker | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.