Avatar billede deamill Nybegynder
22. maj 2007 - 10:18 Der er 5 kommentarer og
1 løsning

Kryptering i VB.NET

Hej,

Findes der nogle indbyggede krypterings muligheder i VB .NET ud over MD5?

Jeg har brug for en metode hvor man både kan kryptere og decryptere.

Jeg kunne godt tænke mig et simpelt kode eksempel :)

På forhånd tak!
Avatar billede khs1a Nybegynder
22. maj 2007 - 10:53 #1
http://www.devx.com/security/Article/7019

forklarer det grundliggende samt har et eksempel inkluderet.
Avatar billede arne_v Ekspert
22. maj 2007 - 15:30 #2
ja - .NET understoetter DES, 3DES, AES etc. og derfor goer VB.NET ogsaa

jeg har et par eksempler liggende
Avatar billede arne_v Ekspert
22. maj 2007 - 15:35 #3
Imports System
Imports System.IO
Imports System.Text
Imports System.Security.Cryptography

Public Class MainClass
    Public Shared Sub Save(data As String, key As String, fnm As String)
        Dim stm As Stream = New FileStream(fnm, FileMode.Create, FileAccess.Write)
        Dim alg As Rijndael = Rijndael.Create
        alg.IV = New Byte() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }
        alg.Key = Encoding.Default.GetBytes(key)
        Dim crypto As New CryptoStream(stm, alg.CreateEncryptor(), CryptoStreamMode.Write)
        Dim b As Byte() = Encoding.Default.GetBytes(data)
        crypto.Write(b, 0, b.Length)
        crypto.Close()
    End Sub
    Public Shared Function Load(fnm As String, key As String) As String
        Dim n As Integer = (New FileInfo(fnm)).Length
        Dim stm As Stream = New FileStream(fnm, FileMode.Open, FileAccess.Read)
        Dim alg As Rijndael = Rijndael.Create
        alg.IV = New Byte() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }
        alg.Key = Encoding.Default.GetBytes(key)
        Dim crypto As New CryptoStream(stm, alg.CreateDecryptor(), CryptoStreamMode.Read)
        Dim b(n) As Byte
        n = crypto.Read(b, 0, b.Length)
        crypto.Close()
        return Encoding.Default.GetString(b, 0, n)
    End Function
    Public Shared Sub Main(ByVal args As String())
        Save("Dette er en lille test", "012345670123456701234567", "C:\cryp.dat")
        Console.WriteLine(Load("C:\cryp.dat", "012345670123456701234567"))
    End Sub
End Class
Avatar billede arne_v Ekspert
22. maj 2007 - 15:40 #4
Imports System
Imports System.Text
Imports System.Security.Cryptography

Class MainClass
    Public Shared Sub Main(ByVal args As String())
        Dim utf As Encoding = New UTF8Encoding
        Dim aes As Rijndael = New RijndaelManaged
        Dim key As Byte() = utf.GetBytes("hemmeligabcdefgh12345678")
        Dim iv As Byte() =  {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}
        Dim encrypt As ICryptoTransform = aes.CreateEncryptor(key, iv)
        Dim plain1 As String = "Dette er en lille test"
        Dim cipher As Byte() = encrypt.TransformFinalBlock(utf.GetBytes(plain1), 0, utf.GetByteCount(plain1))
        Dim i As Integer
        For i = 0 To cipher.Length-1
            Console.WriteLine(cipher(i))
        Next
        Dim decrypt As ICryptoTransform = aes.CreateDecryptor(key, iv)
        Dim plain2 As String = utf.GetString(decrypt.TransformFinalBlock(cipher, 0, cipher.Length))
        Console.WriteLine(plain2)
    End Sub
End Class
Avatar billede deamill Nybegynder
23. maj 2007 - 08:01 #5
Tak arne_v, svar lige :)
Avatar billede arne_v Ekspert
23. maj 2007 - 13:50 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester