Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Fel vid dekryptering

Postades av 2003-09-10 09:19:41 - Christer Engholm, i forum asp.net generellt, Tråden har 5 Kommentarer och lästs av 863 personer

Språk: VB

Jag får följande felmeddelande vid dekryptering:
invalid length for a base-64 char array.

Jag kan inte räkna ut vad det beror på, om strängen är för lång, innehåller felaktiga tecken eller vad.

Kryptera
*******
<code>
Public Function Encrypt(ByVal strInput As String) As String
Dim msin As New System.IO.MemoryStream()
msin.Write(System.Text.Encoding.Default.GetBytes(strInput), 0, System.Text.Encoding.Default.GetBytes(strInput).Length)
msin.Position = 0

Dim msout As New System.IO.MemoryStream()
Dim buf() As Byte = New Byte(2048) {}
Dim sa As SymmetricAlgorithm = SymmetricAlgorithm.Create("Rijndael")
sa.IV = System.Text.Encoding.Default.GetBytes(genIV)
sa.Key = Getkey()

Dim trans As ICryptoTransform = sa.CreateEncryptor()
Dim cs As CryptoStream = New CryptoStream(msout, trans, CryptoStreamMode.Write)
Dim nLen As Integer

nLen = msin.Read(buf, 0, buf.Length)
While (nLen > 0)
cs.Write(buf, 0, nLen)
nLen = msin.Read(buf, 0, buf.Length)
End While
cs.FlushFinalBlock()

Encrypt = System.Convert.ToBase64String(msout.ToArray)

cs.Close()
msin.Close()

End Function
</code>

Dekryptera
*********
<code>
Public Function Decrypt(ByVal strInput As String) As String

Dim msin As New System.IO.MemoryStream()
msin.Write(Convert.FromBase64String(strInput), 0, Convert.FromBase64String(strInput).Length)
msin.Position = 0

Dim msout As New System.IO.MemoryStream()
Dim buf() As Byte = New Byte(2048) {}
Dim sa As SymmetricAlgorithm = SymmetricAlgorithm.Create("Rijndael")
sa.IV = System.Text.Encoding.Default.GetBytes(genIV)
sa.Key = Getkey()

Dim trans As ICryptoTransform = sa.CreateDecryptor()
Dim cs As CryptoStream = New CryptoStream(msin, trans, CryptoStreamMode.Read)
Dim nLen As Integer

nLen = cs.Read(buf, 0, buf.Length)
While (nLen > 0)
msout.Write(buf, 0, nLen)
nLen = cs.Read(buf, 0, buf.Length)
End While

Decrypt = System.Text.Encoding.Default.GetString(msout.ToArray)

msin.Close()
msout.Close()

End Function
</code>


Svara

Sv: Fel vid dekryptering

Postades av 2003-09-10 11:35:25 - Johan Normén

msin.Write(Convert.FromBase64String(strInput), 0, Convert.FromBase64String(strInput).Length)

Är det här du får felet?

//Johan N


Svara

Sv: Fel vid dekryptering

Postades av 2003-09-10 11:41:07 - Christer Engholm

Ja!

Jag har varit inne på msdnoch läst lite.

FormatException (som är felet jag får)

msdn:
The length of inArray is less than 4.
-or-
The length of inArray is not an even multiple of 4.

Skal man kontrollerar inArray innan man dekrypterar strängen, eller? Om man då manipulerar strängen får man ju inte ut rätt resultat efter dekryptering, eller?

Det känns som jag är "ute o seglar", noll koll.


EN FRÅGA TILL:

Jag har min enryption-key i web.config, typ:
<code>
<appSettings>
<add key="EncryptKey" value="min nyckel"/>
</appSettings>
</code>

som jag från min klass anropar via:
<code>
Privat strEncryptionKey = System.ConfigurationSettings.AppSettings("EncryptKey")
</code>

Är detta en bra(smart) lösning eller ej (förslag)?


Svara

Sv: Fel vid dekryptering

Postades av 2003-09-10 11:52:38 - Johan Normén

Jag har inte suttit med just Rijndael. Skulle du kunna maila din kod till mig så kan jag testa den? Vill nämligen veta exakt vilken rad du får felet.

Ang fråga två:
Det beror lite på. Jag skulle kanske lagt den på det sättet men då skulle jag även kryptera den med ex DES eller något, kanske to m. använda Crypto API:et

//Johan N


Svara

Sv: Fel vid dekryptering

Postades av 2003-09-10 12:04:40 - Christer Engholm

Det är den raden som du skrev innan som orsakar felet. Det måste vara någon "overflow" eller nått om man har krypterat för många tecken. Jag har löst det hela (hjälpligt) via en js-funktion som kontrollerar att ej fler än 50 tecken skrivs in i textfältet. Än så länge har jag ej stött på felet.

Fråga 2:

Hur krypterar du krypteringsnyckeln, Encrypt använder ju själva krypteringsnyckeln för att kryptera, det känns lite som rundgång, menar du att jag skall kryptera nyckeln med en annan krypteringsfunktion, eller?

Har du någon bra url eller exempel med Crypto API:et?

Hur pass "säker" är web.config-filen.


Svara

Sv: Fel vid dekryptering

Postades av 2003-09-10 12:22:42 - Johan Normén

Du kan kryptera krypteringsnycklen med Crypto APIet.
Metoder som:
CryptProtectData, CryptUnprotectData

Jag kan inte här på några rader säga hur du programmerar detta så du får en länk här som ger dig lite ex hur du kan gå till väga.
http://www.obviex.com/Samples/Dpapi.aspx

Web.config är relativt säker, men om någon får tag i den så (via hack) så är du inte direkt säker längre. Därför kan man som regel skydda sådan data som ge större skada på systemet, connstring, keys etc...

//Johan N




Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 156
27 952
271 704
13 840
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies