<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Brudvik.org &#187; vb.net</title>
	<atom:link href="http://www.brudvik.org/tag/vbnet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brudvik.org</link>
	<description>Hvor drømmer blir virkelighet</description>
	<lastBuildDate>Sat, 24 Jul 2010 15:43:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>SSH/SFTP client in VB.net with sources</title>
		<link>http://www.brudvik.org/2009/06/sshsftp-client-in-vbnet-with-sources/</link>
		<comments>http://www.brudvik.org/2009/06/sshsftp-client-in-vbnet-with-sources/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 19:11:37 +0000</pubDate>
		<dc:creator>Kjell Arne Brudvik</dc:creator>
				<category><![CDATA[Utvikling]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[progressbar]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SFTP]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Tamir]]></category>
		<category><![CDATA[upload]]></category>
		<category><![CDATA[vb.net]]></category>

		<guid isPermaLink="false">http://www.brudvik.org/?p=543</guid>
		<description><![CDATA[I was browsing the web and found a open-source library for using SSH/SFTP connections in .NET. Thus I put together this example that contains methods to upload, download and list directories. I&#8217;ve made the class easy to use so that you can with ease implement progressbar and such on the transfers. Below you can see [...]


Related posts:<ol><li><a href='http://www.brudvik.org/2009/05/iphone-gui-free-psd-sources/' rel='bookmark' title='Permanent Link: iPhone GUI &#8211; Free PSD sources'>iPhone GUI &#8211; Free PSD sources</a> <small>Earlier today when I needed to create some iPhone&#8217;ish design...</small></li>
<li><a href='http://www.brudvik.org/projects/development/efile-serverclient/' rel='bookmark' title='Permanent Link: eFile (server/client)'>eFile (server/client)</a> <small>One of the applications I coded during my education was...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I was browsing the web and found a open-source library for using SSH/SFTP connections in .NET. Thus I put together this example that contains methods to upload, download and list directories. I&#8217;ve made the class easy to use so that you can with ease implement progressbar and such on the transfers. Below you can see a screenshot from the example program.</p>
<p><img class="aligncenter size-full wp-image-546" title="sshvbnet1" src="http://www.brudvik.org/wp-content/uploads/2009/06/sshvbnet1.png" alt="sshvbnet1" width="359" height="472" /></p>
<p><strong>Download example and sources:</strong></p>
<ul>
<li><a class="downloadlink" href="http://www.brudvik.org/wp-content/plugins/download-monitor/download.php?id=13" title="Version1 downloaded 361 times" >Site Synchronizer (361)</a></li>
</ul>
<p><strong>References:</strong></p>
<ul>
<li><a href="http://www.tamirgal.com/blog/page/SharpSSH.aspx">SharpSSH from Tamir Gal</a></li>
<li><a href="http://www.mentalis.org/soft/projects/seclib/download.qpx">Mentalis Security Library</a></li>
</ul>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.brudvik.org/2009/06/sshsftp-client-in-vbnet-with-sources/&amp;title=SSH%2FSFTP+client+in+VB.net+with+sources" rel="nofollow" class="external" title="Del innlegget på del.icio.us">Del innlegget på del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.brudvik.org/2009/06/sshsftp-client-in-vbnet-with-sources/&amp;t=SSH%2FSFTP+client+in+VB.net+with+sources" rel="nofollow" class="external" title="Del innlegget på Facebook">Del innlegget på Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=SSH%2FSFTP+client+in+VB.net+with+sources&amp;body=Link: http://www.brudvik.org/2009/06/sshsftp-client-in-vbnet-with-sources/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A I%20was%20browsing%20the%20web%20and%20found%20a%20open-source%20library%20for%20using%20SSH%2FSFTP%20connections%20in%20.NET.%20Thus%20I%20put%20together%20this%20example%20that%20contains%20methods%20to%20upload%2C%20download%20and%20list%20directories.%20I%27ve%20made%20the%20class%20easy%20to%20use%20so%20that%20you%20can%20with%20ease%20implement%20progressbar%20and%20such%20on%20the%20transfers.%20B" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.brudvik.org/2009/06/sshsftp-client-in-vbnet-with-sources/&amp;title=SSH%2FSFTP+client+in+VB.net+with+sources&amp;summary=I%20was%20browsing%20the%20web%20and%20found%20a%20open-source%20library%20for%20using%20SSH%2FSFTP%20connections%20in%20.NET.%20Thus%20I%20put%20together%20this%20example%20that%20contains%20methods%20to%20upload%2C%20download%20and%20list%20directories.%20I%27ve%20made%20the%20class%20easy%20to%20use%20so%20that%20you%20can%20with%20ease%20implement%20progressbar%20and%20such%20on%20the%20transfers.%20B&amp;source=Brudvik.org" rel="nofollow" class="external" title="Del innlegget på LinkedIn">Del innlegget på LinkedIn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.brudvik.org/2009/06/sshsftp-client-in-vbnet-with-sources/&amp;title=SSH%2FSFTP+client+in+VB.net+with+sources" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=SSH%2FSFTP+client+in+VB.net+with+sources+-+http://b2l.me/xp9vk&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.brudvik.org/2009/06/sshsftp-client-in-vbnet-with-sources/&amp;n=SSH%2FSFTP+client+in+VB.net+with+sources&amp;pli=1" rel="nofollow" class="external" title="Blogg innlegget på Blogger">Blogg innlegget på Blogger</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=SSH%2FSFTP+client+in+VB.net+with+sources&amp;link=http://www.brudvik.org/2009/06/sshsftp-client-in-vbnet-with-sources/" rel="nofollow" class="external" title="Del innlegget på FriendFeed">Del innlegget på FriendFeed</a>
		</li>
		<li class="shr-identica">
			<a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;SSH%2FSFTP+client+in+VB.net+with+sources&quot;+-+from+http://b2l.me/xp9vk" rel="nofollow" class="external" title="Legg inn dette innlegget på Identica">Legg inn dette innlegget på Identica</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://www.brudvik.org/2009/05/iphone-gui-free-psd-sources/' rel='bookmark' title='Permanent Link: iPhone GUI &#8211; Free PSD sources'>iPhone GUI &#8211; Free PSD sources</a> <small>Earlier today when I needed to create some iPhone&#8217;ish design...</small></li>
<li><a href='http://www.brudvik.org/projects/development/efile-serverclient/' rel='bookmark' title='Permanent Link: eFile (server/client)'>eFile (server/client)</a> <small>One of the applications I coded during my education was...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.brudvik.org/2009/06/sshsftp-client-in-vbnet-with-sources/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Store your application config as XML</title>
		<link>http://www.brudvik.org/2009/03/store-your-application-config-as-xml/</link>
		<comments>http://www.brudvik.org/2009/03/store-your-application-config-as-xml/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 18:14:12 +0000</pubDate>
		<dc:creator>Kjell Arne Brudvik</dc:creator>
				<category><![CDATA[Utvikling]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[ini]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[read]]></category>
		<category><![CDATA[vb.net]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[write]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.brudvik.org/?p=406</guid>
		<description><![CDATA[As I stated in the previous post, the new project of mine I am rewamping most of my old libraries and the configuration is no different. Usually I stored configuration using old INI files, but well &#8211; thats a bit outdated now in 2009. I still wanted a similar way to store and get my [...]


Related posts:<ol><li><a href='http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/' rel='bookmark' title='Permanent Link: Encrypt and decrypt files in VB.net'>Encrypt and decrypt files in VB.net</a> <small>As I&#8217;ve been working on a new project lately, I...</small></li>
<li><a href='http://www.brudvik.org/2009/05/secure-online-passwords/' rel='bookmark' title='Permanent Link: Secure Online Passwords'>Secure Online Passwords</a> <small>Use your default password and generate secure passwords on the...</small></li>
<li><a href='http://www.brudvik.org/projects/development/ftp4che-examples/04-downloading-a-file/' rel='bookmark' title='Permanent Link: 04 &#8211; Downloading a file'>04 &#8211; Downloading a file</a> <small>Downloading a file using the FTP4CHE library is as easy...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>As I stated in the previous post, the new project of mine I am rewamping most of my old libraries and the configuration is no different. Usually I stored configuration using old INI files, but well &#8211; thats a bit outdated now in 2009. I still wanted a similar way to store and get my configuration; so basically I wanted the INI way of storing configuration though in a XML type of format. After browsing the internet I found some different ways people had solved this, though I also wanted the ability to supply a default value in case the value has not been registered. Also, if the setting had not been set already in the file, it should also be automatically set using the default value. This to make it easier and quicker to build a settings.xml file that can quickly be included with applications.</p>
<p><strong>ProgramSettings.vb</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
</pre></td><td class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">'// Copyright (c) 2009 - Kjell Arne Brudvik</span>
<span style="color: #008080; font-style: italic;">'// Email: kjell.arne@brudvik.org - WWW: http://www.brudvik.org/</span>
<span style="color: #008080; font-style: italic;">'// This is released open-source, free to use for anyone whom wants.</span>
&nbsp;
<span style="color: #0600FF;">Imports</span> System.<span style="color: #0000FF;">IO</span>
&nbsp;
<span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Class</span> ProgramSettings
&nbsp;
    <span style="color: #FF8000;">Private</span> filename <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;&quot;</span>
&nbsp;
    <span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Sub</span> <span style="color: #FF8000;">New</span><span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> filename <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span>
        <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">filename</span> <span style="color: #008000;">=</span> filename
    <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
    <span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Function</span> <span style="color: #0600FF;">getSetting</span><span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> key <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span>, <span style="color: #FF8000;">ByVal</span> defaultValue <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span>
        <span style="color: #0600FF;">Try</span>
            <span style="color: #0600FF;">Dim</span> data <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;&quot;</span>
            <span style="color: #0600FF;">Dim</span> settings <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">New</span> DataSet
            <span style="color: #0600FF;">If</span> <span style="color: #008000;">File</span>.<span style="color: #0000FF;">Exists</span><span style="color: #000000;">&#40;</span>filename<span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Then</span>
                settings.<span style="color: #0000FF;">ReadXml</span><span style="color: #000000;">&#40;</span>filename<span style="color: #000000;">&#41;</span>
            <span style="color: #FF8000;">Else</span>
                settings.<span style="color: #0000FF;">Tables</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;settings&quot;</span><span style="color: #000000;">&#41;</span>
                settings.<span style="color: #0000FF;">Tables</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Columns</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;key&quot;</span>, <span style="color: #804040;">GetType</span><span style="color: #000000;">&#40;</span><span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                settings.<span style="color: #0000FF;">Tables</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Columns</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;value&quot;</span>, <span style="color: #804040;">GetType</span><span style="color: #000000;">&#40;</span><span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
            <span style="color: #0600FF;">Dim</span> row<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> DataRow <span style="color: #008000;">=</span> settings.<span style="color: #0000FF;">Tables</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;settings&quot;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0600FF;">Select</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;key = '&quot;</span> <span style="color: #008000;">&amp;</span>amp; key <span style="color: #008000;">&amp;</span>amp; <span style="color: #808080;">&quot;'&quot;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">If</span> row.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span> <span style="color: #FF8000;">Then</span> data <span style="color: #008000;">=</span> row<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;value&quot;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span>
            <span style="color: #0600FF;">If</span> data.<span style="color: #0600FF;">Trim</span>.<span style="color: #0000FF;">Equals</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Then</span>
                data <span style="color: #008000;">=</span> defaultValue
                <span style="color: #0600FF;">Call</span> setSetting<span style="color: #000000;">&#40;</span>key, defaultValue<span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
            <span style="color: #FF8000;">Return</span> data
        <span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> Exception
            <span style="color: #0600FF;">Call</span> setSetting<span style="color: #000000;">&#40;</span>key, defaultValue<span style="color: #000000;">&#41;</span>
            <span style="color: #FF8000;">Return</span> defaultValue
        <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
    <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Function</span>
&nbsp;
    <span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Sub</span> setSetting<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> key <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span>, <span style="color: #FF8000;">ByVal</span> value <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span>
        <span style="color: #0600FF;">Try</span>
            <span style="color: #0600FF;">Dim</span> settings <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">New</span> DataSet
            <span style="color: #0600FF;">If</span> <span style="color: #008000;">File</span>.<span style="color: #0000FF;">Exists</span><span style="color: #000000;">&#40;</span>filename<span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Then</span>
                settings.<span style="color: #0000FF;">ReadXml</span><span style="color: #000000;">&#40;</span>filename<span style="color: #000000;">&#41;</span>
            <span style="color: #FF8000;">Else</span>
                settings.<span style="color: #0000FF;">Tables</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;settings&quot;</span><span style="color: #000000;">&#41;</span>
                settings.<span style="color: #0000FF;">Tables</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Columns</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;key&quot;</span>, <span style="color: #804040;">GetType</span><span style="color: #000000;">&#40;</span><span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                settings.<span style="color: #0000FF;">Tables</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Columns</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;value&quot;</span>, <span style="color: #804040;">GetType</span><span style="color: #000000;">&#40;</span><span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
            <span style="color: #0600FF;">Dim</span> row<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> DataRow <span style="color: #008000;">=</span> settings.<span style="color: #0000FF;">Tables</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>.<span style="color: #0600FF;">Select</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;key = '&quot;</span> <span style="color: #008000;">&amp;</span>amp; key <span style="color: #008000;">&amp;</span>amp; <span style="color: #808080;">&quot;'&quot;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">If</span> row.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span> <span style="color: #FF8000;">Then</span>
                row<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;value&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">=</span> value
            <span style="color: #FF8000;">Else</span>
                <span style="color: #0600FF;">Dim</span> setting <span style="color: #FF8000;">As</span> DataRow <span style="color: #008000;">=</span> settings.<span style="color: #0000FF;">Tables</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;settings&quot;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">NewRow</span>
                setting<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;key&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">=</span> key
                setting<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;value&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">=</span> value
                settings.<span style="color: #0000FF;">Tables</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;settings&quot;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Rows</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>setting<span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
            settings.<span style="color: #0000FF;">WriteXml</span><span style="color: #000000;">&#40;</span>filename<span style="color: #000000;">&#41;</span>
        <span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> Exception
&nbsp;
        <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
    <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Class</span></pre></td></tr></table></div>

<p><strong>How do I use it?</strong><br />
It&#8217;s rather simple to use this Class, and simplicity is what I strive for in the code that I release. As you see below you simply call the constructor with the path for a file, and then using the methods getSetting and setSetting you can easily get and set settings in an XML environment. Thus this class can easily be used to finally get rid of your INI configuration routines.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #0600FF;">Dim</span> settings <span style="color: #FF8000;">as</span> ProgramSettings <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> ProgramSettings<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;settings.xml&quot;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> value <span style="color: #FF8000;">as</span> <span style="color: #FF8000;">String</span> <span style="color: #008000;">=</span> settings.<span style="color: #0600FF;">getSetting</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;author&quot;</span>, <span style="color: #808080;">&quot;Kjell Arne Brudvik&quot;</span><span style="color: #000000;">&#41;</span>
settings.<span style="color: #0000FF;">setSetting</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;author&quot;</span>, <span style="color: #808080;">&quot;Some other author&quot;</span><span style="color: #000000;">&#41;</span></pre></td></tr></table></div>



<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.brudvik.org/2009/03/store-your-application-config-as-xml/&amp;title=Store+your+application+config+as+XML" rel="nofollow" class="external" title="Del innlegget på del.icio.us">Del innlegget på del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.brudvik.org/2009/03/store-your-application-config-as-xml/&amp;t=Store+your+application+config+as+XML" rel="nofollow" class="external" title="Del innlegget på Facebook">Del innlegget på Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Store+your+application+config+as+XML&amp;body=Link: http://www.brudvik.org/2009/03/store-your-application-config-as-xml/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A As%20I%20stated%20in%20the%20previous%20post%2C%20the%20new%20project%20of%20mine%20I%20am%20rewamping%20most%20of%20my%20old%20libraries%20and%20the%20configuration%20is%20no%20different.%20Usually%20I%20stored%20configuration%20using%20old%20INI%20files%2C%20but%20well%20-%20thats%20a%20bit%20outdated%20now%20in%202009.%20I%20still%20wanted%20a%20similar%20way%20to%20store%20and%20get%20my%20configuration%3B%20so" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.brudvik.org/2009/03/store-your-application-config-as-xml/&amp;title=Store+your+application+config+as+XML&amp;summary=As%20I%20stated%20in%20the%20previous%20post%2C%20the%20new%20project%20of%20mine%20I%20am%20rewamping%20most%20of%20my%20old%20libraries%20and%20the%20configuration%20is%20no%20different.%20Usually%20I%20stored%20configuration%20using%20old%20INI%20files%2C%20but%20well%20-%20thats%20a%20bit%20outdated%20now%20in%202009.%20I%20still%20wanted%20a%20similar%20way%20to%20store%20and%20get%20my%20configuration%3B%20so&amp;source=Brudvik.org" rel="nofollow" class="external" title="Del innlegget på LinkedIn">Del innlegget på LinkedIn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.brudvik.org/2009/03/store-your-application-config-as-xml/&amp;title=Store+your+application+config+as+XML" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Store+your+application+config+as+XML+-+File: /data/app/webapp/functions.php<br />Line: 7<br />Message: Too many connections&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.brudvik.org/2009/03/store-your-application-config-as-xml/&amp;n=Store+your+application+config+as+XML&amp;pli=1" rel="nofollow" class="external" title="Blogg innlegget på Blogger">Blogg innlegget på Blogger</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Store+your+application+config+as+XML&amp;link=http://www.brudvik.org/2009/03/store-your-application-config-as-xml/" rel="nofollow" class="external" title="Del innlegget på FriendFeed">Del innlegget på FriendFeed</a>
		</li>
		<li class="shr-identica">
			<a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;Store+your+application+config+as+XML&quot;+-+from+File: /data/app/webapp/functions.php<br />Line: 7<br />Message: Too many connections" rel="nofollow" class="external" title="Legg inn dette innlegget på Identica">Legg inn dette innlegget på Identica</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/' rel='bookmark' title='Permanent Link: Encrypt and decrypt files in VB.net'>Encrypt and decrypt files in VB.net</a> <small>As I&#8217;ve been working on a new project lately, I...</small></li>
<li><a href='http://www.brudvik.org/2009/05/secure-online-passwords/' rel='bookmark' title='Permanent Link: Secure Online Passwords'>Secure Online Passwords</a> <small>Use your default password and generate secure passwords on the...</small></li>
<li><a href='http://www.brudvik.org/projects/development/ftp4che-examples/04-downloading-a-file/' rel='bookmark' title='Permanent Link: 04 &#8211; Downloading a file'>04 &#8211; Downloading a file</a> <small>Downloading a file using the FTP4CHE library is as easy...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.brudvik.org/2009/03/store-your-application-config-as-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encrypt and decrypt files in VB.net</title>
		<link>http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/</link>
		<comments>http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 17:58:57 +0000</pubDate>
		<dc:creator>Kjell Arne Brudvik</dc:creator>
				<category><![CDATA[Utvikling]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[decrypt]]></category>
		<category><![CDATA[encrypt]]></category>
		<category><![CDATA[file decrypt]]></category>
		<category><![CDATA[file encrypt]]></category>
		<category><![CDATA[managed]]></category>
		<category><![CDATA[rijndael]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[vb.net]]></category>
		<category><![CDATA[visual basic]]></category>

		<guid isPermaLink="false">http://www.brudvik.org/?p=400</guid>
		<description><![CDATA[As I&#8217;ve been working on a new project lately, I needed a way to encrypt/decrypt files quickly and easily in VB.net. For some reason I found tons of examples around the internet, but either you had to put them together yourself, or they were poorly coded or coded in a way that seemed like a [...]


Related posts:<ol><li><a href='http://www.brudvik.org/2009/03/store-your-application-config-as-xml/' rel='bookmark' title='Permanent Link: Store your application config as XML'>Store your application config as XML</a> <small>As I stated in the previous post, the new project...</small></li>
<li><a href='http://www.brudvik.org/2009/01/eraser-secure-file-deletion/' rel='bookmark' title='Permanent Link: Eraser &#8211; Secure file deletion'>Eraser &#8211; Secure file deletion</a> <small>Often when you work, you end up having documents that...</small></li>
<li><a href='http://www.brudvik.org/projects/development/tcl-examples/02-tcl-string-functions/' rel='bookmark' title='Permanent Link: 02 &#8211; TCL String functions'>02 &#8211; TCL String functions</a> <small>Some of the functions I use in most of my...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;ve been working on a new project lately, I needed a way to encrypt/decrypt files quickly and easily in VB.net. For some reason I found tons of examples around the internet, but either you had to put them together yourself, or they were poorly coded or coded in a way that seemed like a random mess. Thus I put together this Class that makes it rather easy for you to encrypt/decrypt files. It is based on managed Rijndael and the Class is fairly easy to use.</p>
<p><strong>FileEncryption.vb</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
</pre></td><td class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">'// Copyright (c) 2009 - Kjell Arne Brudvik</span>
<span style="color: #008080; font-style: italic;">'// Email: kjell.arne@brudvik.org - WWW: http://www.brudvik.org/</span>
<span style="color: #008080; font-style: italic;">'// This is released open-source, free to use for anyone whom wants.</span>
&nbsp;
<span style="color: #0600FF;">Imports</span> System
<span style="color: #0600FF;">Imports</span> System.<span style="color: #0000FF;">IO</span>
<span style="color: #0600FF;">Imports</span> System.<span style="color: #0000FF;">Security</span>
<span style="color: #0600FF;">Imports</span> System.<span style="color: #0000FF;">Security</span>.<span style="color: #0000FF;">Cryptography</span>
&nbsp;
<span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Class</span> FileEncryption
&nbsp;
    <span style="color: #FF8000;">Private</span> password <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;&quot;</span>
    <span style="color: #FF8000;">Private</span> encryptionKey<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span> <span style="color: #008000;">=</span> <span style="color: #FF8000;">Nothing</span>
    <span style="color: #FF8000;">Private</span> encryptionIV<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span> <span style="color: #008000;">=</span> <span style="color: #FF8000;">Nothing</span>
    <span style="color: #FF8000;">Private</span> inputFile <span style="color: #FF8000;">As</span> FileStream <span style="color: #008000;">=</span> <span style="color: #FF8000;">Nothing</span>
    <span style="color: #FF8000;">Private</span> outputFile <span style="color: #FF8000;">As</span> FileStream <span style="color: #008000;">=</span> <span style="color: #FF8000;">Nothing</span>
&nbsp;
    <span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Sub</span> <span style="color: #FF8000;">New</span><span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> password <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span>
        <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">password</span> <span style="color: #008000;">=</span> password
        <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">encryptionKey</span> <span style="color: #008000;">=</span> <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">generateKey</span>
        <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">encryptionIV</span> <span style="color: #008000;">=</span> <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">generateIV</span>
    <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
    <span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Sub</span> encryptFile<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> <span style="color: #FF8000;">input</span> <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span>, <span style="color: #FF8000;">ByVal</span> output <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span>
        <span style="color: #0600FF;">Try</span>
            inputFile <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> FileStream<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">input</span>, FileMode.<span style="color: #0600FF;">Open</span>, FileAccess.<span style="color: #0000FF;">Read</span><span style="color: #000000;">&#41;</span>
            outputFile <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> FileStream<span style="color: #000000;">&#40;</span>output, FileMode.<span style="color: #0000FF;">OpenOrCreate</span>, FileAccess.<span style="color: #0600FF;">Write</span><span style="color: #000000;">&#41;</span>
            outputFile.<span style="color: #0000FF;">SetLength</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
&nbsp;
            <span style="color: #0600FF;">Dim</span> buffer<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">4096</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span>
            <span style="color: #0600FF;">Dim</span> bytesProcessed <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Long</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span>
            <span style="color: #0600FF;">Dim</span> fileLength <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Long</span> <span style="color: #008000;">=</span> inputFile.<span style="color: #0000FF;">Length</span>
            <span style="color: #0600FF;">Dim</span> bytesInCurrentBlock <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Integer</span>
            <span style="color: #0600FF;">Dim</span> rijandael <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">New</span> RijndaelManaged
            <span style="color: #0600FF;">Dim</span> cryptoStream <span style="color: #FF8000;">As</span> CryptoStream <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> CryptoStream<span style="color: #000000;">&#40;</span>outputFile, rijandael.<span style="color: #0000FF;">CreateEncryptor</span><span style="color: #000000;">&#40;</span>encryptionKey, encryptionIV<span style="color: #000000;">&#41;</span>, CryptoStreamMode.<span style="color: #0600FF;">Write</span><span style="color: #000000;">&#41;</span>
&nbsp;
            <span style="color: #0600FF;">While</span> bytesProcessed &lt; fileLength
                bytesInCurrentBlock <span style="color: #008000;">=</span> inputFile.<span style="color: #0000FF;">Read</span><span style="color: #000000;">&#40;</span>buffer, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">4096</span><span style="color: #000000;">&#41;</span>
                cryptoStream.<span style="color: #0600FF;">Write</span><span style="color: #000000;">&#40;</span>buffer, <span style="color: #FF0000;">0</span>, bytesInCurrentBlock<span style="color: #000000;">&#41;</span>
                bytesProcessed <span style="color: #008000;">=</span> bytesProcessed <span style="color: #008000;">+</span> <span style="color: #0600FF;">CLng</span><span style="color: #000000;">&#40;</span>bytesInCurrentBlock<span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">While</span>
&nbsp;
            cryptoStream.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
            inputFile.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
            outputFile.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
&nbsp;
            <span style="color: #008000;">File</span>.<span style="color: #0000FF;">Delete</span><span style="color: #000000;">&#40;</span><span style="color: #FF8000;">input</span><span style="color: #000000;">&#41;</span>
        <span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> Exception
&nbsp;
        <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
    <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
    <span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Sub</span> decryptFile<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> <span style="color: #FF8000;">input</span> <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span>, <span style="color: #FF8000;">ByVal</span> output <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span>
        <span style="color: #0600FF;">Try</span>
            inputFile <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> FileStream<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">input</span>, FileMode.<span style="color: #0600FF;">Open</span>, FileAccess.<span style="color: #0000FF;">Read</span><span style="color: #000000;">&#41;</span>
            outputFile <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> FileStream<span style="color: #000000;">&#40;</span>output, FileMode.<span style="color: #0000FF;">OpenOrCreate</span>, FileAccess.<span style="color: #0600FF;">Write</span><span style="color: #000000;">&#41;</span>
            outputFile.<span style="color: #0000FF;">SetLength</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
&nbsp;
            <span style="color: #0600FF;">Dim</span> buffer<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">4096</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span>
            <span style="color: #0600FF;">Dim</span> bytesProcessed <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Long</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span>
            <span style="color: #0600FF;">Dim</span> fileLength <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Long</span> <span style="color: #008000;">=</span> inputFile.<span style="color: #0000FF;">Length</span>
            <span style="color: #0600FF;">Dim</span> bytesInCurrentBlock <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Integer</span>
            <span style="color: #0600FF;">Dim</span> rijandael <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">New</span> RijndaelManaged
            <span style="color: #0600FF;">Dim</span> cryptoStream <span style="color: #FF8000;">As</span> CryptoStream <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> CryptoStream<span style="color: #000000;">&#40;</span>outputFile, rijandael.<span style="color: #0000FF;">CreateDecryptor</span><span style="color: #000000;">&#40;</span>encryptionKey, encryptionIV<span style="color: #000000;">&#41;</span>, CryptoStreamMode.<span style="color: #0600FF;">Write</span><span style="color: #000000;">&#41;</span>
&nbsp;
            <span style="color: #0600FF;">While</span> bytesProcessed &lt; fileLength
                bytesInCurrentBlock <span style="color: #008000;">=</span> inputFile.<span style="color: #0000FF;">Read</span><span style="color: #000000;">&#40;</span>buffer, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">4096</span><span style="color: #000000;">&#41;</span>
                cryptoStream.<span style="color: #0600FF;">Write</span><span style="color: #000000;">&#40;</span>buffer, <span style="color: #FF0000;">0</span>, bytesInCurrentBlock<span style="color: #000000;">&#41;</span>
                bytesProcessed <span style="color: #008000;">=</span> bytesProcessed <span style="color: #008000;">+</span> <span style="color: #0600FF;">CLng</span><span style="color: #000000;">&#40;</span>bytesInCurrentBlock<span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">While</span>
&nbsp;
            cryptoStream.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
            inputFile.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
            outputFile.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
&nbsp;
            <span style="color: #008000;">File</span>.<span style="color: #0000FF;">Delete</span><span style="color: #000000;">&#40;</span><span style="color: #FF8000;">input</span><span style="color: #000000;">&#41;</span>
        <span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> Exception
&nbsp;
        <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
    <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
    <span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Function</span> generateKey<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #0600FF;">Try</span>
            <span style="color: #0600FF;">Dim</span> data<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> Char <span style="color: #008000;">=</span> <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">password</span>.<span style="color: #0000FF;">ToCharArray</span>
            <span style="color: #0600FF;">Dim</span> length <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Integer</span> <span style="color: #008000;">=</span> data.<span style="color: #0000FF;">GetUpperBound</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">Dim</span> hash<span style="color: #000000;">&#40;</span>length<span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span>
            <span style="color: #0600FF;">Dim</span> i <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Long</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span>
            <span style="color: #0600FF;">Dim</span> sha512 <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">New</span> SHA512Managed
            <span style="color: #FF8000;">For</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span> <span style="color: #FF8000;">To</span> data.<span style="color: #0000FF;">GetUpperBound</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
                hash<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span> <span style="color: #008000;">=</span> <span style="color: #0600FF;">CByte</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">Asc</span><span style="color: #000000;">&#40;</span>data<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #FF8000;">Next</span>
            <span style="color: #0600FF;">Dim</span> result <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">=</span> sha512.<span style="color: #0000FF;">ComputeHash</span><span style="color: #000000;">&#40;</span>hash<span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">Dim</span> key<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">31</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span>
            <span style="color: #FF8000;">For</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span> <span style="color: #FF8000;">To</span> <span style="color: #FF0000;">31</span> <span style="color: #FF8000;">Step</span> <span style="color: #FF0000;">1</span>
                key<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span> <span style="color: #008000;">=</span> result<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span>
            <span style="color: #FF8000;">Next</span>
            <span style="color: #FF8000;">Return</span> key
        <span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> Exception
            <span style="color: #FF8000;">Return</span> <span style="color: #FF8000;">Nothing</span>
        <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
    <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Function</span>
&nbsp;
    <span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Function</span> generateIV<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #0600FF;">Try</span>
            <span style="color: #0600FF;">Dim</span> data<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> Char <span style="color: #008000;">=</span> <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">password</span>.<span style="color: #0000FF;">ToCharArray</span>
            <span style="color: #0600FF;">Dim</span> length <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Integer</span> <span style="color: #008000;">=</span> data.<span style="color: #0000FF;">GetUpperBound</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">Dim</span> hash<span style="color: #000000;">&#40;</span>length<span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span>
            <span style="color: #0600FF;">Dim</span> i <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Long</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span>
            <span style="color: #0600FF;">Dim</span> sha512 <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">New</span> SHA512Managed
            <span style="color: #FF8000;">For</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span> <span style="color: #FF8000;">To</span> data.<span style="color: #0000FF;">GetUpperBound</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
                hash<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span> <span style="color: #008000;">=</span> <span style="color: #0600FF;">CByte</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">Asc</span><span style="color: #000000;">&#40;</span>data<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #FF8000;">Next</span>
            <span style="color: #0600FF;">Dim</span> result <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">=</span> sha512.<span style="color: #0000FF;">ComputeHash</span><span style="color: #000000;">&#40;</span>hash<span style="color: #000000;">&#41;</span>
            <span style="color: #0600FF;">Dim</span> iv<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">15</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span>
            <span style="color: #FF8000;">For</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">32</span> <span style="color: #FF8000;">To</span> <span style="color: #FF0000;">47</span>
                iv<span style="color: #000000;">&#40;</span>i <span style="color: #008000;">-</span> <span style="color: #FF0000;">32</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">=</span> result<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span>
            <span style="color: #FF8000;">Next</span>
            <span style="color: #FF8000;">Return</span> iv
        <span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> Exception
            <span style="color: #FF8000;">Return</span> <span style="color: #FF8000;">Nothing</span>
        <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
    <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Function</span>
&nbsp;
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Class</span></pre></td></tr></table></div>

<p><strong>How to use this?</strong></p>
<p>Below is a small example on how you can use this class. When creating a new instance of the class you then supply the key you want to use. Then you can quickly encrypt/decrypt files. The input file in the encryptFile method is the file you want to encrypt, while the output is the encrypted file you generate. And for decrypting it is obviously the other way around.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #0600FF;">Dim</span> encryption <span style="color: #FF8000;">as</span> FileEncryption <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> FileEncryption<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;YOUR KEY GOES HERE&quot;</span><span style="color: #000000;">&#41;</span>
encryption.<span style="color: #0000FF;">encryptFile</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;input file path&quot;</span>, <span style="color: #808080;">&quot;output file path&quot;</span><span style="color: #000000;">&#41;</span>
encryption.<span style="color: #0000FF;">decryptFile</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;input file path&quot;</span>, <span style="color: #808080;">&quot;output file path&quot;</span><span style="color: #000000;">&#41;</span></pre></td></tr></table></div>



<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/&amp;title=Encrypt+and+decrypt+files+in+VB.net" rel="nofollow" class="external" title="Del innlegget på del.icio.us">Del innlegget på del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/&amp;t=Encrypt+and+decrypt+files+in+VB.net" rel="nofollow" class="external" title="Del innlegget på Facebook">Del innlegget på Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Encrypt+and+decrypt+files+in+VB.net&amp;body=Link: http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A As%20I%27ve%20been%20working%20on%20a%20new%20project%20lately%2C%20I%20needed%20a%20way%20to%20encrypt%2Fdecrypt%20files%20quickly%20and%20easily%20in%20VB.net.%20For%20some%20reason%20I%20found%20tons%20of%20examples%20around%20the%20internet%2C%20but%20either%20you%20had%20to%20put%20them%20together%20yourself%2C%20or%20they%20were%20poorly%20coded%20or%20coded%20in%20a%20way%20that%20seemed%20like%20a%20random%20me" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/&amp;title=Encrypt+and+decrypt+files+in+VB.net&amp;summary=As%20I%27ve%20been%20working%20on%20a%20new%20project%20lately%2C%20I%20needed%20a%20way%20to%20encrypt%2Fdecrypt%20files%20quickly%20and%20easily%20in%20VB.net.%20For%20some%20reason%20I%20found%20tons%20of%20examples%20around%20the%20internet%2C%20but%20either%20you%20had%20to%20put%20them%20together%20yourself%2C%20or%20they%20were%20poorly%20coded%20or%20coded%20in%20a%20way%20that%20seemed%20like%20a%20random%20me&amp;source=Brudvik.org" rel="nofollow" class="external" title="Del innlegget på LinkedIn">Del innlegget på LinkedIn</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/&amp;title=Encrypt+and+decrypt+files+in+VB.net" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Encrypt+and+decrypt+files+in+VB.net+-+http://b2l.me/ym2yd&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-blogger">
			<a href="http://www.blogger.com/blog_this.pyra?t&amp;u=http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/&amp;n=Encrypt+and+decrypt+files+in+VB.net&amp;pli=1" rel="nofollow" class="external" title="Blogg innlegget på Blogger">Blogg innlegget på Blogger</a>
		</li>
		<li class="shr-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Encrypt+and+decrypt+files+in+VB.net&amp;link=http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/" rel="nofollow" class="external" title="Del innlegget på FriendFeed">Del innlegget på FriendFeed</a>
		</li>
		<li class="shr-identica">
			<a href="http://identi.ca//index.php?action=newnotice&amp;status_textarea=Reading:+&quot;Encrypt+and+decrypt+files+in+VB.net&quot;+-+from+http://b2l.me/ym2yd" rel="nofollow" class="external" title="Legg inn dette innlegget på Identica">Legg inn dette innlegget på Identica</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://www.brudvik.org/2009/03/store-your-application-config-as-xml/' rel='bookmark' title='Permanent Link: Store your application config as XML'>Store your application config as XML</a> <small>As I stated in the previous post, the new project...</small></li>
<li><a href='http://www.brudvik.org/2009/01/eraser-secure-file-deletion/' rel='bookmark' title='Permanent Link: Eraser &#8211; Secure file deletion'>Eraser &#8211; Secure file deletion</a> <small>Often when you work, you end up having documents that...</small></li>
<li><a href='http://www.brudvik.org/projects/development/tcl-examples/02-tcl-string-functions/' rel='bookmark' title='Permanent Link: 02 &#8211; TCL String functions'>02 &#8211; TCL String functions</a> <small>Some of the functions I use in most of my...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.brudvik.org/2009/03/encrypt-and-decrypt-files-in-vbnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
