Re: Need help decrypting
From: Steve Long (Steve_Noneya_at_NoSpam.com)
Date: 02/23/05
- Previous message: Steve Long: "Re: Need help decrypting"
- In reply to: Joe Kaplan \(MVP - ADSI\): "Re: Need help decrypting"
- Next in thread: Joe Kaplan \(MVP - ADSI\): "Re: Need help decrypting"
- Reply: Joe Kaplan \(MVP - ADSI\): "Re: Need help decrypting"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Date: Tue, 22 Feb 2005 15:59:42 -0800
Okay, so if it really is a password that is stored in an xml file and I
encrypt that password file and store that result, isn't that just an ascii
string? My goal here was to store an encrypted password in an xml file and
then decrypt that on application load up. Is that perhaps not the best
approach for this need? Perhaps I need to store the encrypted password in a
binary file??? Is that maybe what you are saying?
Steve
"Joe Kaplan (MVP - ADSI)" <joseph.e.kaplan@removethis.accenture.com> wrote
in message news:uZJZ5iTGFHA.4004@tk2msftngp13.phx.gbl...
> Also, there is a weird mix of ASCII and UTF8 in there that is asking for
> trouble it seems.
>
> - Typically, if you have unicode strings (which you do in .NET) you want
to
> encrypt them, you want to use Unicode or UTF8 encodings to convert them
into
> byte arrays for encryption. Using ASCII may cause data loss.
> - When you decypt encrypted data into a byte array and that data
represents
> a string, you MUST use the same encoding you used to create the original
> byte array when you encrypted. UTF8 in -> UTF8 out; Unicode in -> Unicode
> out.
> - If you have a byte array of arbitrary data (the result of encryption, a
> hash or other random number generator) and you want to store that as a
> string, you must use a string format that is designed to hold arbitrary
> binary data. Base64 is the normal way to do that
(Convert.ToBase64String).
> Trying to store random binary data as a string using ASCII, UTF8 or
Unicode
> encodings is likely to produce poor results.
>
> I think paying attention to all of those will help make this more
> successful. Also, not reinventing the wheel is good. Here's a sample
from
> an MS employee that might help:
> http://www.dotnetthis.com/Articles/Crypto.htm
>
> There are many other samples out there as well.
>
> Joe K.
>
> "Valery Pryamikov" <valery@harper.no> wrote in message
> news:e$%23zkVTGFHA.1408@TK2MSFTNGP10.phx.gbl...
> > Just a brief look (not checking anyting else): in your encrypt function
> > you derive bytes from "passwd" password, while in your decrypt function
> > you use "pa[]ss!!wo//dd".
> >
> > -Valery.
> > http://www.harper.no/valery
> >
> >
> > "Steve Long" <Steve_Noneya@NoSpam.com> wrote in message
> > news:%23$4F0oPGFHA.2032@tk2msftngp13.phx.gbl...
> >> Hello,
> >> I'm wondering if somebody can help me figure out how to decrypt data. I
> >> seem
> >> to be able to encrypt data but have not been able to decrypt the very
> >> data
> >> that I've encrypted. I know it's because I'm just not understanding
the
> >> whole process but I'm obviously just not getting it. Here's the
> >> encryption
> >> function I'm using:
> >>
> >> Private Sub Encryptpwd()
> >> Dim cdk As PasswordDeriveBytes = New PasswordDeriveBytes("passwd",
> >> Nothing)
> >> Dim iv() As Byte = {0, 0, 0, 0, 0, 0, 0, 0}
> >> Dim key() As Byte = cdk.CryptDeriveKey("RC2", "SHA1", 128, iv)
> >>
> >> Console.WriteLine(key.Length * 8)
> >> ' Set up an RC2 object to encrypt with the derived key
> >> Dim rc2 As RC2CryptoServiceProvider = New RC2CryptoServiceProvider
> >> rc2.Key = key
> >> Dim b() As Byte = {21, 22, 23, 24, 25, 26, 27, 28}
> >> rc2.IV = b
> >> Dim plaintext() As Byte = Encoding.UTF8.GetBytes("iiMap")
> >> Dim ms As New MemoryStream
> >> Dim cs As CryptoStream = New CryptoStream(ms,
rc2.CreateEncryptor(),
> >> _
> >> CryptoStreamMode.Write)
> >> cs.Write(plaintext, 0, plaintext.Length)
> >> cs.Close()
> >> Dim result() As Byte = ms.ToArray()
> >> Dim asc As New ASCIIEncoding
> >> txtResult.Text = asc.GetString(result)
> >> ms.Close()
> >> End Sub
> >>
> >> When I try to decrypt the text that's in txtResult.Text, my result is
> >> always
> >> and empty string:
> >>
> >> Private Sub Decryptpwd()
> >> Dim cdk As PasswordDeriveBytes = New
> >> PasswordDeriveBytes("pa[]ss!!wo//dd", Nothing)
> >> Dim iv() As Byte = {0, 0, 0, 0, 0, 0, 0, 0}
> >> Dim key() As Byte = cdk.CryptDeriveKey("RC2", "SHA1", 128, iv)
> >>
> >> Console.WriteLine(key.Length * 8)
> >> ' Set up an RC2 object to encrypt with the derived key
> >> Dim rc2 As RC2CryptoServiceProvider = New RC2CryptoServiceProvider
> >> rc2.Key = key
> >> Dim b() As Byte = {21, 22, 23, 24, 25, 26, 27, 28}
> >> rc2.IV = b
> >> Dim plaintext() As Byte = Encoding.UTF8.GetBytes(txtResult.Text)
> >>
> >> Dim ms As New MemoryStream
> >> Dim cs As CryptoStream = New CryptoStream(ms,
rc2.CreateDecryptor(),
> >> _
> >> CryptoStreamMode.Write)
> >> cs.Write(plaintext, 0, plaintext.Length)
> >> Dim result(plaintext.Length - 1) As Byte
> >> ms.Read(result, 0, result.Length - 1)
> >> Dim asc As New ASCIIEncoding
> >> txtDecrypt.Text = asc.GetString(result)
> >> cs.Close()
> >> ms.Close()
> >> End Sub
> >>
> >> I would very much appreciate someone setting me straight on this issue.
> >> Thanks in advance
> >> Steve
> >>
> >>
> >>
> >
>
>
- Previous message: Steve Long: "Re: Need help decrypting"
- In reply to: Joe Kaplan \(MVP - ADSI\): "Re: Need help decrypting"
- Next in thread: Joe Kaplan \(MVP - ADSI\): "Re: Need help decrypting"
- Reply: Joe Kaplan \(MVP - ADSI\): "Re: Need help decrypting"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
|