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


Kryptering

Postades av 2003-05-28 22:51:45 - Thomas Axelsson, i forum vb.net, Tråden har 19 Kommentarer och lästs av 1720 personer

Behöver ett bra sätt att kryptera en (lösenords-)sträng.

Om nyckel behövs (antar jag), så gärna tips på hur jag kan få den från datorns hårdvara/os (så att den inte funkar på nån annan dator)

Nåt med system.cryptography??

//Thomas

PS. Förstås vill jag kunna dekryptera den oxå ;-)


Svara

Sv: Kryptering

Postades av 2003-05-29 09:31:46 - Herbjörn Wilhelmsen

Kolla in denna artikel (handlar bl.a. om att Hasha lösenord):

http://www.dotnetfriends.com/templates/Page.aspx?id=2112


Svara

Sv: Kryptering

Postades av 2003-05-29 09:33:10 - Fredrik Normén

Du kan använda dig av namespacet System.Security.Cryptography och använda dig av RSA.

Hör kommer lite exempel kod:

Encrypt:

<code>

byte[] dataToEncrypt = ByteConverter.GetBytes("Data to Encrypt");
byte[] encryptedData;
byte[] decryptedData;

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

//RSA Key information.
RSA.ImportParameters(RSAKeyInfo);

encryptedData = RSA.Encrypt(DataToEncrypt, false);

</code>

Decrypt:

<code>
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

//RSA Key information.
RSA.ImportParameters(RSAKeyInfo);

decryptedData = RSA.Decrypt(encryptedData, false);
</code>

Hoppas detta löser dina problem.

/Fredrik N


Svara

Sv: Kryptering

Postades av 2003-05-29 12:45:47 - Thomas Axelsson

får fel på ganska mkt med din kod :-/

missat nån import?


Svara

Sv: Kryptering

Postades av 2003-05-29 12:58:28 - Fredrik Normén

Här har du ett komplett exempel, det andra va bara utdragen kod för att visa lite hur man kan använda RSA.

Om du går inte på .Net SDK och slår upp "RSACryptoServiceProvider class" så har du ett exempel där som du kan se på om du vill ha fullständig kod.

Om du ska enbart köra med Windows som platform så kan du göra en DLLImport på crypt32.dll och använda dess cryptering och decryptering.

/Fredrik N


Svara

Sv: Kryptering

Postades av 2003-05-29 13:48:22 - Thomas Axelsson

<code>
Dim kryptvärde As Byte
Dim RSA As New RSACryptoServiceProvider()
TypeDescriptor.GetConverter(kryptvärde).ConvertFromString(värde)
Return RSA.Encrypt(kryptvärde, False)
</code>

D:\Thomas mapp\Mina Dokument\Visual Studio Projects\TeliaADSL\modTelia.vb(208): Value of type 'Byte' cannot be converted to '1-dimensional array of Byte'.

Hur fixar jag det där med array-grejen? (kryptvärde på sista raden ger felet)


Svara

Sv: Kryptering

Postades av 2003-05-29 14:04:03 - Fredrik Normén

Du måste jobba med Byte arrayer, inte As Byte utan As Byte()

/Fredrik N


Svara

Sv: Kryptering

Postades av 2003-05-29 16:09:19 - Thomas Axelsson

Använder:

<code>
Function dekryptera(ByVal värde As String)
MsgBox("dk1: " & värde)
Dim kryptvärde As Byte()
Dim RSA As New RSACryptoServiceProvider()
kryptvärde = System.Text.UnicodeEncoding.Unicode.GetBytes(värde)
kryptvärde = RSA.Decrypt(kryptvärde, False)
värde = System.Text.UnicodeEncoding.Unicode.GetChars(kryptvärde)
MsgBox("dk1: " & värde)
Return värde
End Function

Function kryptera(ByVal värde As String)
MsgBox("k1: " & värde)
Dim kryptvärde As Byte()
Dim RSA As New RSACryptoServiceProvider()
kryptvärde = System.Text.UnicodeEncoding.Unicode.GetBytes(värde)
kryptvärde = RSA.Encrypt(kryptvärde, False)
värde = System.Text.UnicodeEncoding.Unicode.GetChars(kryptvärde)
MsgBox("k2: " & värde)
Return värde
End Function
</code>

men dekrypteringsfunktionen får felet: "fel längd" på decrypt-raden, fast jag tar och skickar den krypterade strängen direkt till dekryptera

beror det på att den ändrar nån krypteringsgrej varje gång den körs?


Svara

Sv: Kryptering

Postades av 2003-05-29 16:37:18 - Thomas Axelsson

Fick det att funka! (var tvungen att spara nycklarna :-P)

<code>
Function kryptera(ByVal värde As String) As String
MsgBox("k1: " & värde)
Dim kryptvärde As Byte()
Dim CSPParam As New CspParameters()
CSPParam.Flags = CspProviderFlags.UseMachineKeyStore
Dim RSA As New RSACryptoServiceProvider(CSPParam)
kryptvärde = System.Text.UnicodeEncoding.Unicode.GetBytes(värde)
Debug.WriteLine(kryptvärde)
kryptvärde = RSA.Encrypt(kryptvärde, False)
värde = System.Text.UnicodeEncoding.Unicode.GetChars(kryptvärde)
rsaParam = RSA.ExportParameters(True)
MsgBox("k2: " & värde)
Return värde
End Function

Function dekryptera(ByVal värde As String) As String
MsgBox("dk1: " & värde)
Dim kryptvärde As Byte()
Dim CSPParam As New CspParameters()
CSPParam.Flags = CspProviderFlags.UseMachineKeyStore
Dim RSA As New RSACryptoServiceProvider(CSPParam)
RSA.ImportParameters(rsaParam)
kryptvärde = System.Text.UnicodeEncoding.Unicode.GetBytes(värde)
Debug.WriteLine(kryptvärde)
kryptvärde = RSA.Decrypt(kryptvärde, False)
värde = System.Text.UnicodeEncoding.Unicode.GetChars(kryptvärde)
MsgBox("dk1: " & värde)
Return värde
End Function
</code>

Men kan jag spara dem när mitt program är avstängt? Skulle helst spara dem i registret om det går på nåt säkert sätt

Eller är det bättre att spara den publika och ha en fast privat? (programmet ska fixa det här av sig självt)


Svara

Sv: Kryptering

Postades av 2003-05-30 07:58:29 - Fredrik Normén

Testa med att serializera RSAParameters objektet på disk och sedan vid använding deserializera det.

/Fredrik N


Svara

Sv: Kryptering

Postades av 2003-05-30 08:24:05 - Thomas Axelsson

Hur då?

RSA.toXMLString?

RSA.PersistKeyInCsp=True?


Svara

Sv: Kryptering

Postades av 2003-05-30 09:06:48 - Thomas Axelsson

Kör med toXMLString på både public o private...
Om nån läser Xml-filen kan väl de få fram den krypterade texten? :-/


Svara

Sv: Kryptering

Postades av 2003-05-30 10:00:02 - Fredrik Normén

Här har du exempel kod på hur du serializerar ett objekt.

<code>
MyObject obj = new MyObject();

IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
</code>

<code>
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
MyObject obj = (MyObject) formatter.Deserialize(stream);
stream.Close();
</code>

Du kan tex göra detta med ditt RSAParameter "rsaParam" object.

/Fredrik N


Svara

Sv: Kryptering

Postades av 2003-05-30 20:35:16 - Thomas Axelsson

Ser ut som JScript, skrev om till:

<code>
Function serializera(ByVal objObjekt As Object, ByVal strFil As String)
Dim formatter As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
Dim stream As New FileStream(strFil & ".bin", FileMode.Create, FileAccess.Write, FileShare.None)
formatter.Serialize(stream, objObjekt)
stream.Close()
End Function

Function avserializera(ByVal strFil As String)
Dim objObjekt As Object
Dim formatter As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
Dim stream As New FileStream(strFil & ".bin", FileMode.Open, FileAccess.Read, FileShare.Read)
objObjekt = formatter.Deserialize(stream)
stream.Close()
End Function
</code>


Svara

Sv: Kryptering

Postades av 2003-05-31 03:11:03 - Mattias Sjögren

Har du verkligen tänkt igenom det här ordentligt? Hur ska lösenordet användas och från vem ska det skyddas? Låt inte kryptering invagga dig i någon falsk säkerhet. Får någon tillgång till dina sparade privata/publika nycklar så är inte krypteringen värt ett skvatt.


MS


Svara

Sv: Kryptering

Postades av 2003-05-31 09:43:15 - Thomas Axelsson

Jag vet.. men hur ska jag kunna lagra dem då?

Jag har ett program för inloggning till Telia ADSL och det ska spara användarens lösenord krypterat..

Finns det nån bättre metod?
Borde jag köra med symmetrisk kryptering och ha nyckeln lagrad i programmet? (Kan ingen kolla den ändå :-/)
Eller kan jag spara den i Windows på nåt sätt?

//Thomas


Svara

Sv: Kryptering

Postades av 2003-05-31 09:45:34 - Thomas Axelsson

Fredrik: Det verkar som det blir nåt fel vid serializeringen, allt funkar första gången (innan det har serializerats) men andra gången (när nycklarna läses från filen) så blir det fel på Hashen


Svara

Sv: Kryptering

Postades av 2003-05-31 11:13:09 - Johan Normén

Hej. En lösning är att du kör DES istället för RSA, baseras på en nyckel som du kan spara undan. Des är en symetrisk algoritm så du använder bara en nyckel för att packa och samma för att packa upp.


Bygge själv en DSL inloggnings service för Telia, som då även updaterar min dyndns då ip-adressen ändras. Jag valde att inte köra krypterat lösenord, dels av den anledningen att det är jag själv som kör med den, samt så är det inte så vanligt att ens polare rotar omkring i mitt register. Så egentligen behöver du ju inte köra kryptering på den. Men annars är DES ett bra allternativ.

Mvh Johan


Svara

Sv: Kryptering

Postades av 2003-06-01 07:57:12 - Fredrik Normén

Har själv inte testat att serillizera RSAParameters. Jag brukar inte köra med kryptering där jag behöver decryptera, men där jag skulle göra det, så skulle jag använda mig av Microsoft Crypt API, crypt32.dll. Om du går in på Microsoft site msdn.microsoft.com och tankar ner Petshop 3.0, så finns det exempel där de använder crypt32.dll för att kryptera odh dekryptera connection strängar som de lagrara i web.config.

/Fredrik N


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 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

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 615
27 953
271 709
5 697
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