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


Enkel kryptering

Postades av 2005-08-19 11:42:59 - Fredrik Rodin, i forum asp.net generellt, Tråden har 14 Kommentarer och lästs av 1105 personer

Hallå!

Jag behöver på ett enkelt sätt kryptera en sträng i en QueryString.

Kort exempel:

Värde: 123
Kryptera till: AU4I298LJ (alltså exemepel)
Jag tar emot det och dekrypterar tillbaka till 123.

Jag vill bara kunna kryptera till en sträng som innehåller a-z och/eller 0-9. Inga andra tecken.

I detta fall handlar det _inte_ om känslig information, utan jag vill bara förhindra att någon på ett enkelt sätt kan hämta information baserat på ett löpnummer.

http://www...../minasida.aspx?id=123 kan bli http://www...../minasida.aspx?id=AU4I298LJ
http://www...../minasida.aspx?id=124 kan bli http://www...../minasida.aspx?id=8JRXZ7R1P

Jag hoppas ni förstår hur jag menar. Jag har letat lite på nätet men hittar mest riktig kryptering som är väldigt komplex.

Tacksam för förslag, tips och ideer.

Jag skriver i VB.NET

MVH
Fredrik


Svara

Sv: Enkel kryptering

Postades av 2005-08-19 12:10:52 - Johan Normén

Hej, är löpnummret signat till nått speciellt? ex en användare eller en organisation?
Då tycker jag det är bättre att du gör en sådan säkerhetshantering, busienssauthorization typ.

Om man anger löpnr 123456 och är användare 3 som tillhör organisationen x så får han/hon ev access till detta nummer, men om nummer 123456 inte alls tilhör denna organisation och användare förnekas access.

För det är inte så svårt att lista ut kryptering om man på nått sätt kan se löpnummret och även den krypterade datan. Ex i qury och på sidan ser man löpnummret.

Mvh Johan


Svara

Sv:Enkel kryptering

Postades av 2005-08-19 13:25:50 - Fredrik Rodin

Det har du ju helt rätt i, men i detta fall är löpnumret ett artikel ID.

Jag har tusentals bilder på olika artiklar i en databas. När jag hämtar dessa skriver jag såhär:

<img src="/get_image.aspx?ID=123"> men jag vill alltså skriva <img src="/get_image.aspx?ID=XUEL83U9O"> istället.

Jag förstår att det är ganska lätt att knäcka, men jag vill undvika det mest basala;

<img src="/get_image.aspx?ID=123">
<img src="/get_image.aspx?ID=124">
<img src="/get_image.aspx?ID=125">
<img src="/get_image.aspx?ID=126">
.
.
.
.

Det är ju klart lättare att spara ner bilderna i något program genom att loopa från t.ex. 1 till 1000.

Om någon har en listig idé får ni gärna dela den med mig.

Tack på förhand,
Fredrik


Svara

Sv: Enkel kryptering

Postades av 2005-08-19 13:39:25 - Andreas Hillqvist

Varför inte anända slumptal som primärnyckel? Om du använder en Access databas är det ett alternativ. Där är bara att ställa om räknaren till slumptal.


Svara

Sv: Enkel kryptering

Postades av 2005-08-20 09:59:06 - Emil Löfquist

Ett bra alternativ är att använda GUID's till ID:n. De eliminerar all logic :)


Svara

Sv:Enkel kryptering

Postades av 2005-08-22 12:42:13 - Andreas Hillqvist

GUID är betydligt större, vilket påverka prestanda vid joins och sökningar med tabellen. Det kräver oxå att kod måste skrivas om att hantera GUID istället för tal.

Det är därför jag inte valt att rekomendera detta.

Kostar mer än vad det smakar.


Svara

Sv: Enkel kryptering

Postades av 2005-08-22 13:50:36 - Johan Normén

Syftar du på utvecklingkostnad? eller på prestanda kostnad?
I så fall bör man tänka om lite.

Kör man inte Access o vill bygga sin egna kryptera och omkryptera kod o få till alt sånt på alla tällen,
har man nog bekostat x antal utvecklingstid och penagar än vad GUID skulle kosta.
Att köpa lite extra hårdvara för några hundrallappar för att få upp hastigheten är mkt billigare än att
koda en massa...

Nu säger ja gitne att GUID skulle vara bäst, men att man iböand bör se på sina resurser före man tänker på prestanda i de mån då man ev kan påverka prestanda genom ut- eller upp-skaling av hårdvara istället för offra timmar på kod.

Mvh Johan


Svara

Sv:Enkel kryptering

Postades av 2005-08-22 16:11:01 - Andreas Hillqvist

Jag har fått intryck att access databaser är den vanligast förekommande databasen i detta forum vid asp utveckling. Därför väljer jag att svara utifrån det.
Då är den enklaste lösning att ändra en egenskap för räknaren. Då slipper du skriva om kod eller förlora prestanda till GUID.

Om det inte rör sig om access är mitt svar inte applicerbart i samma utsträckning.

JAg föredrar då GUID framför en kodfunktion. För mig har inte kodfunktionen varit ett alternativ. då den inte adresserar problemet utan bara symtomet.


Svara

Sv: Enkel kryptering

Postades av 2005-08-23 09:09:20 - Fredrik Rodin

Jag tackar för alla svar och ideer. Jag har labborerat lite och kom fram till en helt annan lösning. Jag kollar helt enkelt om den som frågar efter bilden kommer från min site.

MVH
Fredrik


Svara

Sv:Enkel kryptering

Postades av 2005-08-23 09:20:50 - Andreas Hillqvist

Hur gör du detta?


Svara

Sv: Enkel kryptering

Postades av 2005-08-23 13:08:24 - Johan Djupmarker

<b>Hur gör du detta? </b>

Gissningsvis genom att kolla referer.

/Johan


Svara

Sv:Enkel kryptering

Postades av 2005-08-23 13:25:59 - Rickard Robin

Tjena Frodin ! :)
Vet vad du är ute efter, har precis implementerat samma sak i ett projekt här.

Klassen kommer nedan, och exempel längst ner.
<code>
Imports System.Diagnostics
Imports System.Security.Cryptography
Imports System.Text
Imports System.IO

Public Class CryptoUtil

'8 bytes randomly selected for both the Key and the Initialization Vector
'the IV is used to encrypt the first block of text so that any repetitive
'patterns are not apparent
Private Shared KEY_64() As Byte = {42, 16, 93, 156, 78, 4, 218, 32}
Private Shared IV_64() As Byte = {55, 103, 246, 79, 36, 99, 167, 3}

'24 byte or 192 bit key and IV for TripleDES
Private Shared KEY_192() As Byte = {42, 16, 93, 156, 78, 4, 218, 32, _
15, 167, 44, 80, 26, 250, 155, 112, _
2, 94, 11, 204, 119, 35, 184, 197}
Private Shared IV_192() As Byte = {55, 103, 246, 79, 36, 99, 167, 3, _
42, 5, 62, 83, 184, 7, 209, 13, _
145, 23, 200, 58, 173, 10, 121, 222}

'Standard DES encryption
Public Shared Function Encrypt(ByVal value As String) As String
If value <> "" Then

Dim cryptoProvider As DESCryptoServiceProvider = _
New DESCryptoServiceProvider
Dim ms As MemoryStream = New MemoryStream
Dim cs As CryptoStream = _
New CryptoStream(ms, cryptoProvider.CreateEncryptor(KEY_64, IV_64), _
CryptoStreamMode.Write)
Dim sw As StreamWriter = New StreamWriter(cs)

sw.Write(value)
sw.Flush()
cs.FlushFinalBlock()
ms.Flush()

'convert back to a string
Return Convert.ToBase64String(ms.GetBuffer(), 0, ms.Length)

End If
End Function


'Standard DES decryption
Public Shared Function Decrypt(ByVal value As String) As String
If value <> "" Then
value = value.Replace(" ", "+")
Dim cryptoProvider As DESCryptoServiceProvider = _
New DESCryptoServiceProvider

'convert from string to byte array
Dim buffer As Byte() = Convert.FromBase64String(value)
Dim ms As MemoryStream = New MemoryStream(buffer)
Dim cs As CryptoStream = _
New CryptoStream(ms, cryptoProvider.CreateDecryptor(KEY_64, IV_64), _
CryptoStreamMode.Read)
Dim sr As StreamReader = New StreamReader(cs)


Return sr.ReadToEnd()
End If
End Function

'TRIPLE DES encryption
Public Shared Function EncryptTripleDES(ByVal value As String) As String
If value <> "" Then
Dim cryptoProvider As TripleDESCryptoServiceProvider = _
New TripleDESCryptoServiceProvider
Dim ms As MemoryStream = New MemoryStream
Dim cs As CryptoStream = _
New CryptoStream(ms, cryptoProvider.CreateEncryptor(KEY_192, IV_192), _
CryptoStreamMode.Write)
Dim sw As StreamWriter = New StreamWriter(cs)

sw.Write(value)
sw.Flush()
cs.FlushFinalBlock()
ms.Flush()

'convert back to a string
Return Convert.ToBase64String(ms.GetBuffer(), 0, ms.Length)
End If
End Function


'TRIPLE DES decryption
Public Shared Function DecryptTripleDES(ByVal value As String) As String
If value <> "" Then
Dim cryptoProvider As TripleDESCryptoServiceProvider = _
New TripleDESCryptoServiceProvider

'convert from string to byte array
Dim buffer As Byte() = Convert.FromBase64String(value)
Dim ms As MemoryStream = New MemoryStream(buffer)
Dim cs As CryptoStream = _
New CryptoStream(ms, cryptoProvider.CreateDecryptor(KEY_192, IV_192), _
CryptoStreamMode.Read)
Dim sr As StreamReader = New StreamReader(cs)

Return sr.ReadToEnd()
End If
End Function

End Class

</code>

Och använd med:

encryptedstring = Encrypt("blabla")
decryptedstring = Decrypt(encryptedstring)

TripleDES behöver du inte för att stoppa mipplande med querysträngar =)

/Rickard



Svara

Sv:Enkel kryptering

Postades av 2005-08-23 13:59:09 - Andreas Hillqvist

Det är väl upp till webläsaren att skicka med den. Finns risk att bilderna inte visas.
Om det dessutom bara sker en redirect sedan kan man ju hoppaförbi kontrollen.
Osv.

Därför jag vill veta hur han gör.


Svara

Nyligen

  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude

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 570 871
27 965
271 770
522
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