<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FFile_Directory%2FCypher_Decypher_File</id>
		<title>VB.Net/File Directory/Cypher Decypher File - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FFile_Directory%2FCypher_Decypher_File"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/File_Directory/Cypher_Decypher_File&amp;action=history"/>
		<updated>2026-04-06T00:10:03Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/File_Directory/Cypher_Decypher_File&amp;diff=840&amp;oldid=prev</id>
		<title> в 16:40, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/File_Directory/Cypher_Decypher_File&amp;diff=840&amp;oldid=prev"/>
				<updated>2010-05-26T16:40:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:40, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/File_Directory/Cypher_Decypher_File&amp;diff=841&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/File_Directory/Cypher_Decypher_File&amp;diff=841&amp;oldid=prev"/>
				<updated>2010-05-26T12:45:20Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Decrypt a Des Encryted File==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Xml&lt;br /&gt;
Imports System.Xml.Schema&lt;br /&gt;
Imports System.IO&lt;br /&gt;
Imports System.Data.OleDb&lt;br /&gt;
Imports System.Data.rumon&lt;br /&gt;
Imports System.Data.SqlClient&lt;br /&gt;
Imports System.Data&lt;br /&gt;
Imports System.Security&lt;br /&gt;
Imports System.Security.Cryptography&lt;br /&gt;
&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    &lt;br /&gt;
    Shared Sub Main()&lt;br /&gt;
        Dim fs As FileStream = New FileStream(&amp;quot;DSencrypted.dat&amp;quot;,FileMode.Create, FileAccess.Write)&lt;br /&gt;
        Dim MyDS As DataSet = New DataSet()&lt;br /&gt;
        Dim MyDS2 As DataSet = New DataSet()&lt;br /&gt;
        Dim Connection As SqlConnection = New SqlConnection(&amp;quot;Server=(local)\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=SSPI&amp;quot;)&lt;br /&gt;
        Connection.Open()&lt;br /&gt;
        Dim MyDA As SqlDataAdapter = New SqlDataAdapter(&amp;quot;SELECT * FROM Employee&amp;quot;, Connection)&lt;br /&gt;
        MyDA.Fill(MyDS, &amp;quot;Employee&amp;quot;)&lt;br /&gt;
        Dim DES As DESCryptoServiceProvider = New DESCryptoServiceProvider()&lt;br /&gt;
        Dim DESencrypter As ICryptoTransform = DES.CreateEncryptor()&lt;br /&gt;
        Dim cryptStream As CryptoStream = New CryptoStream(fs, DESencrypter, CryptoStreamMode.Write)&lt;br /&gt;
        MyDS.WriteXml(cryptStream, XmlWriteMode.WriteSchema)&lt;br /&gt;
        cryptStream.Close()&lt;br /&gt;
&lt;br /&gt;
        Dim fsRead As FileStream = New FileStream(&amp;quot;DSencrypted.dat&amp;quot;, _&lt;br /&gt;
           FileMode.Open, FileAccess.Read)&lt;br /&gt;
        Dim DESdecrypter As ICryptoTransform = DES.CreateDecryptor()&lt;br /&gt;
        Dim decryptStream As CryptoStream = New CryptoStream(fsRead, _&lt;br /&gt;
           DESdecrypter, CryptoStreamMode.Read)&lt;br /&gt;
        Dim plainStreamR As XmlTextReader = New XmlTextReader(decryptStream)&lt;br /&gt;
        MyDS2.ReadXml(plainStreamR, XmlReadMode.ReadSchema)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Encrypting a file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;  &lt;br /&gt;
Imports System.Security.Cryptography&lt;br /&gt;
Module MainModule&lt;br /&gt;
    Public Function GenerateKey() As Byte()&lt;br /&gt;
        Dim objDES As New System.Security.Cryptography.DESCryptoServiceProvider()&lt;br /&gt;
        objDES.GenerateKey()&lt;br /&gt;
        Return objDES.Key&lt;br /&gt;
    End Function&lt;br /&gt;
    Public Function GenerateIV() As Byte()&lt;br /&gt;
        Dim objDES As New System.Security.Cryptography.DESCryptoServiceProvider()&lt;br /&gt;
        objDES.GenerateIV()&lt;br /&gt;
        Return objDES.IV&lt;br /&gt;
    End Function&lt;br /&gt;
    Public Sub SaveEncryptedFile(ByVal Key() As Byte, ByVal IV() As Byte, ByVal Data As String, ByVal Filename As String)&lt;br /&gt;
        Dim objFileStream As New System.IO.FileStream(Filename, System.IO.FileMode.Create, System.IO.FileAccess.Write)&lt;br /&gt;
        Dim bytInput As Byte() = New System.Text.UnicodeEncoding().GetBytes(Data)&lt;br /&gt;
        Dim objDES As New DESCryptoServiceProvider()&lt;br /&gt;
        objDES.Key = Key&lt;br /&gt;
        objDES.IV = IV&lt;br /&gt;
        Dim objDESEncrypt As ICryptoTransform = objDES.CreateEncryptor()&lt;br /&gt;
        Dim objCryptStream As New CryptoStream(objFileStream, objDESEncrypt, CryptoStreamMode.Write)&lt;br /&gt;
        objCryptStream.Write(bytInput, 0, bytInput.Length)&lt;br /&gt;
        objCryptStream.Close()&lt;br /&gt;
        objFileStream.Close()&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Function LoadEncryptedFile(ByVal Key() As Byte, ByVal IV() As Byte, ByVal Filename As String) As String&lt;br /&gt;
        Dim objFileStream As New System.IO.FileStream(Filename, System.IO.FileMode.Open, System.IO.FileAccess.Read)&lt;br /&gt;
        Dim objDES As New DESCryptoServiceProvider()&lt;br /&gt;
        objDES.Key = Key&lt;br /&gt;
        objDES.IV = IV&lt;br /&gt;
        Dim objDESDecrypt As ICryptoTransform = objDES.CreateDecryptor()&lt;br /&gt;
        Dim objCryptStream As New CryptoStream(objFileStream, objDESDecrypt, CryptoStreamMode.Read)&lt;br /&gt;
        LoadEncryptedFile = New System.IO.StreamReader(objCryptStream, New System.Text.UnicodeEncoding()).ReadToEnd()&lt;br /&gt;
        objCryptStream.Close()&lt;br /&gt;
        objFileStream.Close()&lt;br /&gt;
    End Function&lt;br /&gt;
End Module&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use DES, RC2, Rijndael, TripleDES to decrypt and Encrypt files==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System.Security.Cryptography&lt;br /&gt;
Imports System.IO&lt;br /&gt;
Imports System.Text&lt;br /&gt;
Imports System&lt;br /&gt;
Public Class SymEnc&lt;br /&gt;
    Shared Dim algorithms() As String = {&amp;quot;DES&amp;quot;, &amp;quot;RC2&amp;quot;, &amp;quot;Rijndael&amp;quot;, &amp;quot;TripleDES&amp;quot;}&lt;br /&gt;
    Shared Dim b64Keys() As String = {&amp;quot;YE32PGCJ/g0=&amp;quot;,&amp;quot;vct+rJ09WuUcR61yfxniTQ==&amp;quot;,&amp;quot;PHDPqfwE3z25f2UYjwwfwg4XSqxvl8WYmy+2h8t6AUg=&amp;quot;,&amp;quot;Q1/lWoraddTH3IXAQUJGDSYDQcYYuOpm&amp;quot;}&lt;br /&gt;
    Shared Dim b64IVs() As String = {&amp;quot;onQX8hdHeWQ=&amp;quot;,&amp;quot;jgetiyz+pIc=&amp;quot;,&amp;quot;pd5mgMMfDI2Gxm/SKl5I8A==&amp;quot;,&amp;quot;6jpFrUh8FF4=&amp;quot;}&lt;br /&gt;
    Public Shared Sub Main(ByVal CmdArgs() As String)&lt;br /&gt;
        If (CmdArgs.Length &amp;lt;&amp;gt; 4) Then&lt;br /&gt;
            UsageAndExit()&lt;br /&gt;
        End If&lt;br /&gt;
        Dim algorithmsIndex As Integer = CmdArgs(0)&lt;br /&gt;
        If (algorithmsIndex &amp;lt; 0 Or algorithmsIndex &amp;gt;= algorithms.Length) Then&lt;br /&gt;
            UsageAndExit()&lt;br /&gt;
        End If&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        Dim inputFile As FileStream = File.OpenRead(CmdArgs(2))&lt;br /&gt;
        Dim outputFile As FileStream = File.OpenWrite(CmdArgs(3))&lt;br /&gt;
        Dim sa As SymmetricAlgorithm = SymmetricAlgorithm.Create(algorithms(algorithmsIndex))&lt;br /&gt;
        &lt;br /&gt;
        sa.IV = Convert.FromBase64String(b64IVs(algorithmsIndex))&lt;br /&gt;
        sa.Key = Convert.FromBase64String(b64Keys(algorithmsIndex))&lt;br /&gt;
        If (CmdArgs(1).ToUpper().StartsWith(&amp;quot;E&amp;quot;)) Then&lt;br /&gt;
            Encrypt(sa, inputFile, outputFile)&lt;br /&gt;
        Else&lt;br /&gt;
            Decrypt(sa, inputFile, outputFile)&lt;br /&gt;
        End If&lt;br /&gt;
        &lt;br /&gt;
    End Sub&lt;br /&gt;
    Shared Public Sub Encrypt(ByVal sa As SymmetricAlgorithm,ByVal inputFile As Stream,ByVal outputFile As Stream)&lt;br /&gt;
        Dim trans As ICryptoTransform = sa.CreateEncryptor()&lt;br /&gt;
        Dim buf() As Byte = New Byte(2048) {}&lt;br /&gt;
        Dim cs As CryptoStream = _&lt;br /&gt;
        New CryptoStream(outputFile, trans, CryptoStreamMode.Write)&lt;br /&gt;
        Dim Len As Integer&lt;br /&gt;
        inputFile.Position = 0&lt;br /&gt;
        Len = inputFile.Read(buf, 0, buf.Length)&lt;br /&gt;
        While (Len &amp;gt; 0)&lt;br /&gt;
            cs.Write(buf, 0, Len)&lt;br /&gt;
            Len = inputFile.Read(buf, 0, buf.Length)&lt;br /&gt;
        End While&lt;br /&gt;
        cs.Close()&lt;br /&gt;
        inputFile.Close()&lt;br /&gt;
    End Sub&lt;br /&gt;
    Shared Public Sub Decrypt(ByVal sa As SymmetricAlgorithm,ByVal inputFile As Stream,ByVal outputFile As Stream)&lt;br /&gt;
        Dim trans As ICryptoTransform = sa.CreateDecryptor()&lt;br /&gt;
        Dim buf() As Byte = New Byte(2048) {}&lt;br /&gt;
        Dim cs As CryptoStream = _&lt;br /&gt;
        New CryptoStream(inputFile, trans, CryptoStreamMode.Read)&lt;br /&gt;
        Dim Len As Integer&lt;br /&gt;
        Len = cs.Read(buf, 0, buf.Length)&lt;br /&gt;
        While (Len &amp;gt; 0)&lt;br /&gt;
            outputFile.Write(buf, 0, Len)&lt;br /&gt;
            Len = cs.Read(buf, 0, buf.Length)&lt;br /&gt;
        End While&lt;br /&gt;
        inputFile.Close()&lt;br /&gt;
        outputFile.Close()&lt;br /&gt;
    End Sub&lt;br /&gt;
    Shared Public Sub UsageAndExit()&lt;br /&gt;
        Console.Write(&amp;quot;usage SymEnc &amp;lt;algorithms index&amp;gt; &amp;lt;D|E&amp;gt; &amp;lt;in&amp;gt; &amp;lt;out&amp;gt; &amp;quot;)&lt;br /&gt;
        Console.WriteLine(&amp;quot;D =decrypt, E=Encrypt&amp;quot;)&lt;br /&gt;
        For i As Integer = 0 To (algorithms.Length - 1)&lt;br /&gt;
            Console.WriteLine(&amp;quot;Algo index: {0} {1}&amp;quot;, i, algorithms(i))&lt;br /&gt;
        Next i&lt;br /&gt;
        End&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use Des to cypher and decypher File ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Security&lt;br /&gt;
Imports System.Security.Cryptography&lt;br /&gt;
Imports System.IO&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
        Dim plainTextFileName As String = &amp;quot;test.txt&amp;quot;&lt;br /&gt;
        Dim cypherTextFileName As String = &amp;quot;cyphertext.dat&amp;quot;&lt;br /&gt;
        Dim decypheredFileName As String = &amp;quot;decyphered.txt&amp;quot;&lt;br /&gt;
        CryptFile(&amp;quot;MyPassword&amp;quot;, plainTextFileName, cypherTextFileName, True)&lt;br /&gt;
        Console.WriteLine( File.ReadAllText(plainTextFileName))&lt;br /&gt;
        Console.WriteLine( File.ReadAllText(cypherTextFileName))&lt;br /&gt;
        CryptFile(&amp;quot;MyPassword&amp;quot;, cypherTextFileName, decypheredFileName, False)&lt;br /&gt;
        Console.WriteLine( File.ReadAllText(decypheredFileName))&lt;br /&gt;
   End Sub &lt;br /&gt;
    &amp;quot; Encrypt or decrypt a file, saving the results &lt;br /&gt;
    &amp;quot; in another file.&lt;br /&gt;
    Shared Private Sub CryptFile(ByVal password As String, ByVal in_file As String, ByVal out_file As String, ByVal encrypt As Boolean)&lt;br /&gt;
        &amp;quot; Create input and output file streams.&lt;br /&gt;
        Dim in_stream As New FileStream(in_file, FileMode.Open, FileAccess.Read)&lt;br /&gt;
        Dim out_stream As New FileStream(out_file, FileMode.Create, FileAccess.Write)&lt;br /&gt;
        Dim des_provider As New TripleDESCryptoServiceProvider()&lt;br /&gt;
        &amp;quot; Find a valid key size for this provider.&lt;br /&gt;
        Dim key_size_bits As Integer = 0&lt;br /&gt;
        For i As Integer = 1024 To 1 Step -1&lt;br /&gt;
            If des_provider.ValidKeySize(i) Then&lt;br /&gt;
                key_size_bits = i&lt;br /&gt;
                Exit For&lt;br /&gt;
            End If&lt;br /&gt;
        Next i&lt;br /&gt;
        &amp;quot;Debug.Assert(key_size_bits &amp;gt; 0)&lt;br /&gt;
        Dim block_size_bits As Integer = des_provider.BlockSize&lt;br /&gt;
        Dim key As Byte() = Nothing&lt;br /&gt;
        Dim iv As Byte() = Nothing&lt;br /&gt;
        MakeKeyAndIV(password, key_size_bits, block_size_bits, key, iv)&lt;br /&gt;
        Dim crypto_transform As ICryptoTransform&lt;br /&gt;
        If encrypt Then&lt;br /&gt;
            crypto_transform = des_provider.CreateEncryptor(key, iv)&lt;br /&gt;
        Else&lt;br /&gt;
            crypto_transform = des_provider.CreateDecryptor(key, iv)&lt;br /&gt;
        End If&lt;br /&gt;
        Dim crypto_stream As New CryptoStream(out_stream, crypto_transform, CryptoStreamMode.Write)&lt;br /&gt;
        Const BLOCK_SIZE As Integer = 1024&lt;br /&gt;
        Dim buffer(BLOCK_SIZE) As Byte&lt;br /&gt;
        Dim bytes_read As Integer&lt;br /&gt;
        Do&lt;br /&gt;
            bytes_read = in_stream.Read(buffer, 0, BLOCK_SIZE)&lt;br /&gt;
            If bytes_read = 0 Then Exit Do&lt;br /&gt;
            crypto_stream.Write(buffer, 0, bytes_read)&lt;br /&gt;
        Loop&lt;br /&gt;
        crypto_stream.Close()&lt;br /&gt;
        in_stream.Close()&lt;br /&gt;
        out_stream.Close()&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Use the password to generate key bytes.&lt;br /&gt;
    Shared Private Sub MakeKeyAndIV(ByVal password As String, ByVal key_size_bits As Integer, ByVal block_size_bits As Integer, ByRef key As Byte(), ByRef iv As Byte())&lt;br /&gt;
        Dim password_derive_bytes As New PasswordDeriveBytes( _&lt;br /&gt;
            &amp;quot;MyPassword&amp;quot;, Nothing, &amp;quot;SHA384&amp;quot;, 1000)&lt;br /&gt;
        key = password_derive_bytes.GetBytes(key_size_bits \ 8)&lt;br /&gt;
        iv = password_derive_bytes.GetBytes(block_size_bits \ 8)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>