<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>SHA1 &#8211; MaxVergelli.com</title>
	<atom:link href="https://www.maxvergelli.com/tag/sha1/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.maxvergelli.com</link>
	<description>sourcecode repository</description>
	<lastBuildDate>Tue, 07 Apr 2020 13:42:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://i2.wp.com/www.maxvergelli.com/wp-content/uploads/2020/04/wp-1586823685141.png?fit=32%2C32&#038;ssl=1</url>
	<title>SHA1 &#8211; MaxVergelli.com</title>
	<link>https://www.maxvergelli.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">34603511</site>	<item>
		<title>Easy-to-use and strong Encrypt/Decrypt PHP functions</title>
		<link>https://www.maxvergelli.com/easy-to-use-strong-encrypt-decrypt-php-functions/</link>
					<comments>https://www.maxvergelli.com/easy-to-use-strong-encrypt-decrypt-php-functions/#comments</comments>
		
		<dc:creator><![CDATA[Max]]></dc:creator>
		<pubDate>Tue, 10 Dec 2019 15:04:26 +0000</pubDate>
				<category><![CDATA[Cryptography]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[decryption]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[hashing]]></category>
		<category><![CDATA[MD5]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[parsing]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rijndael]]></category>
		<category><![CDATA[SHA1]]></category>
		<category><![CDATA[SHA256]]></category>
		<category><![CDATA[string]]></category>
		<category><![CDATA[String-class]]></category>
		<category><![CDATA[string-manipulation]]></category>
		<guid isPermaLink="false">http://www.maxvergelli.com/?p=57</guid>

					<description><![CDATA[I wrote those two following PHP functions to encrypt and decrypt strings easly and with a stronger encryption module than the other examples on the net (please, note that &#8220;strong&#8221; does not equals &#8220;secure&#8221;!); Happy encryption/decryption! 🙂 Max [sourcecode language=&#8221;php&#8221;] &#8230; <a class="kt-excerpt-readmore" href="https://www.maxvergelli.com/easy-to-use-strong-encrypt-decrypt-php-functions/" aria-label="Easy-to-use and strong Encrypt/Decrypt PHP functions">Read More</a>]]></description>
										<content:encoded><![CDATA[<p>I wrote those two following PHP functions to encrypt and decrypt strings easly and with a stronger encryption module than the other examples on the net (please, note that &#8220;strong&#8221; does not equals &#8220;secure&#8221;!);</p>
<p>Happy encryption/decryption! 🙂</p>
<p>Max</p>
[sourcecode language=&#8221;php&#8221;]
	function encrypt($input_string, $key){<br />
		$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);<br />
		$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);<br />
		$h_key = hash(&#8216;sha256&#8217;, $key, TRUE);<br />
		return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $h_key, $input_string, MCRYPT_MODE_ECB, $iv));<br />
	}</p>
<p>	function decrypt($encrypted_input_string, $key){<br />
		$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);<br />
		$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);<br />
		$h_key = hash(&#8216;sha256&#8217;, $key, TRUE);<br />
		return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $h_key, base64_decode($encrypted_input_string), MCRYPT_MODE_ECB, $iv));<br />
	}<br />
[/sourcecode]
]]></content:encoded>
					
					<wfw:commentRss>https://www.maxvergelli.com/easy-to-use-strong-encrypt-decrypt-php-functions/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">57</post-id>	</item>
		<item>
		<title>Updated version of CryptographyHelper class for .NET Framework 4</title>
		<link>https://www.maxvergelli.com/cryptography-helper-class-for-net-framework-4/</link>
					<comments>https://www.maxvergelli.com/cryptography-helper-class-for-net-framework-4/#comments</comments>
		
		<dc:creator><![CDATA[Max]]></dc:creator>
		<pubDate>Fri, 27 May 2016 14:53:01 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Cryptography]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[base64]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[decryption]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[enumerate]]></category>
		<category><![CDATA[enumerating]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[hashing]]></category>
		<category><![CDATA[helper-class]]></category>
		<category><![CDATA[MD5]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rijndael]]></category>
		<category><![CDATA[SHA1]]></category>
		<category><![CDATA[SHA256]]></category>
		<category><![CDATA[vb.net]]></category>
		<category><![CDATA[wrapper-class]]></category>
		<guid isPermaLink="false">http://www.maxvergelli.com/?p=30</guid>

					<description><![CDATA[This updated version of mine “CryptographyHelper” wrapper/helper class supports .NET Framework 4 . With this vb.net class you can easly encrypt/decrypt strings using a robust symmetric Rijndael algorithm or you can get also MD5 or SHA1, SHA256 hash codes of &#8230; <a class="kt-excerpt-readmore" href="https://www.maxvergelli.com/cryptography-helper-class-for-net-framework-4/" aria-label="Updated version of CryptographyHelper class for .NET Framework 4">Read More</a>]]></description>
										<content:encoded><![CDATA[<p>This updated version of mine “CryptographyHelper” wrapper/helper class supports .NET Framework 4 .</p>
<p>With this vb.net class you can easly encrypt/decrypt strings using a robust <strong>symmetric Rijndael algorithm</strong> or you can get also <strong>MD5</strong> or <strong>SHA1</strong>, <strong>SHA256 hash codes</strong> of a string.</p>
<p>During the encryption, the CryptographyHelper encrypts a clear text and saves it in a binary stream, then converts the binary output in <strong>Hexadecimal or Base64 encoding type</strong> for a string rapresentation. The opposite job during the decryption.</p>
<p>How to use:</p>
[sourcecode language=&#8221;vb&#8221;]
Imports {project&#8217;s name}.Cryptography</p>
<p>Dim crypt As New CryptographyHelper</p>
<p>&#8216;select your favorite encoding type (Hexadecimal or Base64) for encrypted/decryptet text<br />
&#8216;in output/input;<br />
&#8216;during the encryption, the CryptographyHelper encrypts a clear text and saves it in a<br />
&#8216;binary stream, then converts the binary output in Hexadecimal or Base64 encoding type<br />
&#8216;for a string rapresentation. The opposite job during the decryption.<br />
crypt.EncodingType = CryptographyHelper.ENCODING_TYPE.Hexadecimal</p>
<p>&#8216;choose a password<br />
Dim password As String = &quot;my secret password&quot;</p>
<p>&#8216;encrypt/decrypt strings using a robust symmetric Rijndael algorithm<br />
Dim encrypted_text As String = crypt.Encrypt(&quot;plain text to encrypt&#8230;&quot;, password)<br />
Dim decrypted_text As String = crypt.Decrypt(encrypted_text, password)</p>
<p>&#8216;you can also get an hash of a string<br />
Dim MD5hash As String = crypt.GetHash(&quot;string to hash&quot;, CryptographyHelper.HASH_TYPE.MD5)<br />
Dim SHA1hash As String = crypt.GetHash(&quot;string to hash&quot;, CryptographyHelper.HASH_TYPE.SHA1)<br />
Dim SHA256hash As String = crypt.GetHash(&quot;string to hash&quot;, CryptographyHelper.HASH_TYPE.SHA256)<br />
[/sourcecode]
<p>Enjoy 🙂</p>
<p>Max</p>
[sourcecode language=&#8221;vb&#8221;]
<p>&#8216;	CryptographyHelper &amp; Cryptography VB.NET classes for .NET Framework 4<br />
&#8216;	http://www.maxvergelli.com/<br />
&#8216;<br />
&#8216;	Copyright (c) 2016 Max Vergelli<br />
&#8216;<br />
&#8216;   Vers. 3.5.1<br />
&#8216;   Date: 23/03/2016<br />
&#8216;<br />
&#8216;   Description:<br />
&#8216;   With the “CryptographyHelper” wrapper class, you can easly encrypt/decrypt strings in<br />
&#8216;   .NET Framework 4 using a robust symmetric Rijndael algorithm or you can get also MD5<br />
&#8216;   or SHA1, SHA256 hash codes of a string.<br />
&#8216;   During the encryption, the CryptographyHelper encrypts a clear text and saves it in a<br />
&#8216;   binary stream, then converts the binary output in Hexadecimal or Base64 encoding type<br />
&#8216;   for a string rapresentation. The opposite job during the decryption.<br />
&#8216;<br />
&#8216;<br />
&#8216;   Usage:<br />
&#8216;<br />
&#8216;   Imports {project&#8217;s name}.Cryptography<br />
&#8216;<br />
&#8216;   Dim crypt As New CryptographyHelper<br />
&#8216;<br />
&#8216;   &#8216;select your favorite encoding type (Hexadecimal or Base64) for encrypted/decryptet text<br />
&#8216;   &#8216;in output/input;<br />
&#8216;   &#8216;during the encryption, the CryptographyHelper encrypts a clear text and saves it in a<br />
&#8216;   &#8216;binary stream, then converts the binary output in Hexadecimal or Base64 encoding type<br />
&#8216;   &#8216;for a string rapresentation. The opposite job during the decryption.<br />
&#8216;   crypt.EncodingType = CryptographyHelper.ENCODING_TYPE.Hexadecimal<br />
&#8216;<br />
&#8216;   &#8216;choose a password<br />
&#8216;   Dim password As String = &quot;my secret password&quot;<br />
&#8216;<br />
&#8216;   encrypt/decrypt strings using a robust symmetric Rijndael algorithm<br />
&#8216;   Dim encrypted_text As String = crypt.Encrypt(&quot;plain text to encrypt&#8230;&quot;, password)<br />
&#8216;   Dim decrypted_text As String = crypt.Decrypt(encrypted_text, password)<br />
&#8216;<br />
&#8216;   &#8216;you can also get an hash of a string<br />
&#8216;   Dim MD5hash As String = crypt.GetHash(&quot;string to hash&quot;, CryptographyHelper.HASH_TYPE.MD5)<br />
&#8216;   Dim SHA1hash As String = crypt.GetHash(&quot;string to hash&quot;, CryptographyHelper.HASH_TYPE.SHA1)<br />
&#8216;   Dim SHA256hash As String = crypt.GetHash(&quot;string to hash&quot;, CryptographyHelper.HASH_TYPE.SHA256)<br />
&#8216;<br />
&#8216;<br />
&#8216;   License:<br />
&#8216;<br />
&#8216;	Permission is hereby granted, free of charge, to any person obtaining a copy<br />
&#8216;	of this software and associated documentation files (the &quot;Software&quot;), to deal<br />
&#8216;	in the Software without restriction, including without limitation the rights<br />
&#8216;	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell<br />
&#8216;	copies of the Software, and to permit persons to whom the Software is<br />
&#8216;	furnished to do so, subject to the following conditions:<br />
&#8216;<br />
&#8216;	The above copyright notice and this permission notice shall be included in<br />
&#8216;	all copies or substantial portions of the Software.<br />
&#8216;<br />
&#8216;	THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br />
&#8216;	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br />
&#8216;	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE<br />
&#8216;	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER<br />
&#8216;	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,<br />
&#8216;	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN<br />
&#8216;	THE SOFTWARE.</p>
<p>Imports System<br />
Imports System.IO<br />
Imports System.Text<br />
Imports System.Security.Cryptography</p>
<p>Namespace Cryptography</p>
<p>    Public Class CryptographyHelper</p>
<p>        Private _encoding As ENCODING_TYPE</p>
<p>        Public Enum ENCODING_TYPE As Integer<br />
            Hexadecimal = 1<br />
            Base64 = 2<br />
        End Enum</p>
<p>        Public Enum HASH_TYPE As Integer<br />
            MD5 = 1<br />
            SHA1 = 2<br />
            SHA256 = 3<br />
            SHA512 = 4<br />
        End Enum</p>
<p>        Public Sub New(Optional ByVal encoding As ENCODING_TYPE = ENCODING_TYPE.Hexadecimal)</p>
<p>            &#8216;by default encryption/hashing outputs hexadecimal strings<br />
            &#8216;and decryption get hexstrings as input<br />
            If encoding &lt;&gt; ENCODING_TYPE.Hexadecimal And encoding &lt;&gt; ENCODING_TYPE.Base64 Then<br />
                encoding = ENCODING_TYPE.Hexadecimal<br />
            End If<br />
            _encoding = encoding</p>
<p>        End Sub</p>
<p>        Public Property EncodingType() As ENCODING_TYPE<br />
            Get<br />
                Return _encoding<br />
            End Get<br />
            Set(ByVal value As ENCODING_TYPE)<br />
                _encoding = value<br />
            End Set<br />
        End Property</p>
<p>        Public Function GetHash(ByRef input As String, Optional ByVal type As HASH_TYPE = HASH_TYPE.MD5) As String</p>
<p>            Dim crypt As New Cryptography<br />
            Dim bytes() As Byte = Nothing<br />
            Select Case type<br />
                Case HASH_TYPE.MD5<br />
                    bytes = crypt.CreateMD5Hash(input)<br />
                Case HASH_TYPE.SHA1<br />
                    bytes = crypt.CreateSHA1Hash(input)<br />
                Case HASH_TYPE.SHA256<br />
                    bytes = crypt.CreateSHA256Hash(input)<br />
                Case HASH_TYPE.SHA512<br />
                    bytes = crypt.CreateSHA512Hash(input)<br />
                Case Else<br />
                    bytes = crypt.CreateMD5Hash(input)<br />
            End Select<br />
            Dim hash As String = &quot;&quot;<br />
            Select Case _encoding<br />
                Case ENCODING_TYPE.Hexadecimal<br />
                    hash = crypt.BytesToHexString(bytes)<br />
                Case ENCODING_TYPE.Base64<br />
                    hash = crypt.BytesToBase64(bytes)<br />
                Case Else<br />
                    hash = crypt.BytesToHexString(bytes)<br />
            End Select<br />
            crypt = Nothing<br />
            Return hash</p>
<p>        End Function</p>
<p>        Public Function Encrypt(ByRef input As String, ByRef password As String) As String</p>
<p>            Dim crypt As New Cryptography(password)<br />
            Dim bytes() As Byte = crypt.Encrypt(input)<br />
            Dim encrypted As String = &quot;&quot;<br />
            If bytes IsNot Nothing Then<br />
                Select Case _encoding<br />
                    Case ENCODING_TYPE.Hexadecimal<br />
                        encrypted = crypt.BytesToHexString(bytes)<br />
                    Case ENCODING_TYPE.Base64<br />
                        encrypted = crypt.BytesToBase64(bytes)<br />
                    Case Else<br />
                        encrypted = crypt.BytesToHexString(bytes)<br />
                End Select<br />
            End If<br />
            crypt = Nothing<br />
            Return encrypted</p>
<p>        End Function</p>
<p>        Public Function Decrypt(ByRef input As String, ByRef password As String) As String</p>
<p>            Dim decrypted As String = &quot;&quot;<br />
            If input.Length &gt; 0 Then<br />
                Dim crypt As New Cryptography(password)<br />
                Dim enc_bytes() As Byte = Nothing<br />
                Select Case _encoding<br />
                    Case ENCODING_TYPE.Hexadecimal<br />
                        enc_bytes = crypt.HexStringToBytes(input)<br />
                    Case ENCODING_TYPE.Base64<br />
                        enc_bytes = crypt.Base64ToBytes(input)<br />
                    Case Else<br />
                        enc_bytes = crypt.HexStringToBytes(input)<br />
                End Select<br />
                decrypted = crypt.Decrypt(enc_bytes)<br />
                crypt = Nothing<br />
            End If<br />
            Return decrypted</p>
<p>        End Function</p>
<p>    End Class</p>
<p>    Public Class Cryptography</p>
<p>        Private _key_str As String = Nothing<br />
        Private _key_byte() As Byte = Nothing<br />
        Private _txt_converter As New UnicodeEncoding<br />
        Private _rijndael As New RijndaelManaged &#8216;&quot;rèin-daal&quot; 🙂</p>
<p>        Public Sub New(Optional ByVal encryption_key As String = &quot;&quot;)</p>
<p>            If encryption_key &lt;&gt; &quot;&quot; Then EncryptionKey = encryption_key</p>
<p>        End Sub</p>
<p>        Protected Overrides Sub Finalize()</p>
<p>            If _txt_converter IsNot Nothing Then<br />
                _txt_converter = Nothing<br />
            End If<br />
            If _rijndael IsNot Nothing Then<br />
                _rijndael = Nothing<br />
            End If<br />
            _key_str = Nothing<br />
            _key_byte = Nothing</p>
<p>        End Sub</p>
<p>        Public Property EncryptionKey() As String</p>
<p>            Get<br />
                Return _key_str<br />
            End Get</p>
<p>            Set(ByVal value As String)</p>
<p>                Try<br />
                    &#8216;set the key string<br />
                    _key_str = value</p>
<p>                    &#8216;set hash in bytes of the key string<br />
                    Dim hash256 As New SHA256Managed<br />
                    _key_byte = hash256.ComputeHash(_txt_converter.GetBytes(_key_str))<br />
                    hash256 = Nothing</p>
<p>                    &#8216;If UBound(_key_byte) &lt; 0 Then Exit Property         &#8216;.NET &lt;= 3.5<br />
                    If _key_byte.GetUpperBound(0) &lt; 0 Then Exit Property &#8216;.NET Framework 4</p>
<p>                    &#8216;set Rijndael Key and IV vector for 256 bit encryption<br />
                    Dim main_key(31) As Byte<br />
                    Dim main_vector(15) As Byte<br />
                    Dim diff_block As Integer = 5<br />
                    _rijndael.KeySize = 256 &#8216;bit</p>
<p>                    Dim n As Integer = 0<br />
                    Dim x As Integer = 0<br />
                    Dim y As Integer = 0</p>
<p>                    &#8216;For n = 0 To UBound(main_key)         &#8216;.NET &lt;= 3.5<br />
                    For n = 0 To main_key.GetUpperBound(0) &#8216;.NET Framework 4</p>
<p>                        main_key(n) = _key_byte(x)<br />
                        &#8216;If n &gt; diff_block And n &lt;= UBound(main_vector) + diff_block Then         &#8216;.NET &lt;= 3.5<br />
                        If n &gt; diff_block And n &lt;= main_vector.GetUpperBound(0) + diff_block Then &#8216;.NET Framework 4<br />
                            main_vector(y) = _key_byte(x)<br />
                            y = y + 1<br />
                        End If<br />
                        x = x + 1</p>
<p>                        &#8216;If x &gt; UBound(_key_byte) Then x = 0         &#8216;.NET &lt;= 3.5<br />
                        If x &gt; _key_byte.GetUpperBound(0) Then x = 0 &#8216;.NET Framework 4</p>
<p>                    Next<br />
                    _rijndael.Key = main_key<br />
                    _rijndael.IV = main_vector</p>
<p>                Catch</p>
<p>                    &#8216;set a blank encryption key then we cannot encrypt/decrypt<br />
                    _key_str = Nothing</p>
<p>                End Try</p>
<p>            End Set</p>
<p>        End Property</p>
<p>        Public Function Encrypt(ByRef clear_text As String) As Byte()</p>
<p>            Dim enc_bytes() As Byte = Nothing<br />
            Try<br />
                If _key_str IsNot Nothing Then<br />
                    &#8216;get byte array from text<br />
                    Dim bytes() As Byte = _txt_converter.GetBytes(clear_text)</p>
<p>                    &#8216;encrypt data<br />
                    Dim encryptor As ICryptoTransform = _rijndael.CreateEncryptor()<br />
                    Dim msEncrypt As New MemoryStream<br />
                    Dim csEncrypt As New CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)</p>
<p>                    &#8216;write all data to the crypto stream and flush it<br />
                    csEncrypt.Write(bytes, 0, bytes.Length)<br />
                    csEncrypt.FlushFinalBlock()</p>
<p>                    &#8216;get encrypted byte array<br />
                    enc_bytes = msEncrypt.ToArray()</p>
<p>                    msEncrypt = Nothing<br />
                    csEncrypt = Nothing<br />
                End If<br />
            Catch</p>
<p>            End Try</p>
<p>            Return enc_bytes</p>
<p>        End Function</p>
<p>        Public Function Decrypt(ByRef encrypted_text() As Byte) As String</p>
<p>            Dim dec_text As String = Nothing</p>
<p>            Try<br />
                If _key_str IsNot Nothing Then<br />
                    Dim decryptor As ICryptoTransform = _rijndael.CreateDecryptor()<br />
                    Dim msDecrypt As New MemoryStream(encrypted_text)<br />
                    Dim csDecrypt As New CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)</p>
<p>                    &#8216;prepare buffer<br />
                    Dim bytes() As Byte = New Byte(encrypted_text.Length &#8211; 1) {}</p>
<p>                    &#8216;read the data out of the crypto stream<br />
                    csDecrypt.Read(bytes, 0, bytes.Length)</p>
<p>                    &#8216;convert the byte array back into a string<br />
                    dec_text = _txt_converter.GetString(bytes)</p>
<p>                    &#8216;strip null chars at the end of the string<br />
                    StripNullAtEnd(dec_text)</p>
<p>                    msDecrypt = Nothing<br />
                    csDecrypt = Nothing<br />
                End If<br />
            Catch</p>
<p>            End Try</p>
<p>            Return dec_text</p>
<p>        End Function</p>
<p>        Public Function BytesToBase64(ByRef input_bytes() As Byte) As String</p>
<p>            Dim s As String = Nothing<br />
            Try<br />
                s = Convert.ToBase64String(input_bytes)<br />
            Catch</p>
<p>            End Try<br />
            Return s</p>
<p>        End Function</p>
<p>        Public Function Base64ToBytes(ByRef input_base64 As String) As Byte()</p>
<p>            Dim b() As Byte = Nothing<br />
            Try<br />
                b = Convert.FromBase64String(input_base64)<br />
            Catch</p>
<p>            End Try<br />
            Return b</p>
<p>        End Function</p>
<p>        Public Function BytesToHexString(ByRef input_bytes() As Byte) As String</p>
<p>            Dim s As String = Nothing<br />
            Try<br />
                &#8216;Dim s As String = BitConverter.ToString(input_bytes).Replace(&quot;-&quot;, String.Empty)<br />
                Dim builder As New StringBuilder()<br />
                For i As Integer = 0 To input_bytes.Length &#8211; 1<br />
                    builder.AppendFormat(&quot;{0:x2}&quot;, input_bytes(i))<br />
                Next<br />
                s = builder.ToString()<br />
                builder = Nothing<br />
            Catch</p>
<p>            End Try<br />
            Return s</p>
<p>        End Function</p>
<p>        Public Function HexStringToBytes(ByRef input_hex_string As String) As Byte()</p>
<p>            Dim bytes As Byte() = Nothing<br />
            Try<br />
                &#8216;i variable used to hold position in string<br />
                Dim i As Integer = 0<br />
                &#8216;x variable used to hold byte array element position<br />
                Dim x As Integer = 0<br />
                &#8216;allocate byte array based on half of string length<br />
                bytes = New Byte((input_hex_string.Length)  2 &#8211; 1) {}<br />
                &#8216;loop through the string &#8211; 2 bytes at a time converting<br />
                &#8216;it to decimal equivalent and store in byte array<br />
                While input_hex_string.Length &gt; i + 1<br />
                    Dim lngDecimal As Long = Convert.ToInt32(input_hex_string.Substring(i, 2), 16)<br />
                    bytes(x) = Convert.ToByte(lngDecimal)<br />
                    i = i + 2<br />
                    x += 1<br />
                End While<br />
                &#8216;return the finished byte array of decimal values<br />
            Catch</p>
<p>            End Try<br />
            Return bytes</p>
<p>        End Function</p>
<p>        Public Function CreateMD5Hash(ByRef input As String) As Byte()</p>
<p>            Dim hash As Byte() = Nothing<br />
            Try<br />
                Dim bytes() As Byte = _txt_converter.GetBytes(input)<br />
                Dim objMD5 As New MD5CryptoServiceProvider<br />
                hash = objMD5.ComputeHash(bytes)<br />
                objMD5 = Nothing<br />
            Catch</p>
<p>            End Try<br />
            Return hash</p>
<p>        End Function</p>
<p>        Public Function CreateSHA1Hash(ByRef input As String) As Byte()</p>
<p>            Dim hash As Byte() = Nothing<br />
            Try<br />
                Dim bytes() As Byte = _txt_converter.GetBytes(input)<br />
                Dim objSHA As New SHA1CryptoServiceProvider<br />
                hash = objSHA.ComputeHash(bytes)<br />
                objSHA = Nothing<br />
            Catch</p>
<p>            End Try<br />
            Return hash</p>
<p>        End Function</p>
<p>        Public Function CreateSHA256Hash(ByRef input As String) As Byte()<br />
            Dim hash As Byte() = Nothing<br />
            Try<br />
                Dim bytes() As Byte = _txt_converter.GetBytes(input)<br />
                Dim objSHA As New SHA256CryptoServiceProvider<br />
                hash = objSHA.ComputeHash(bytes)<br />
                objSHA = Nothing<br />
            Catch</p>
<p>            End Try<br />
            Return hash</p>
<p>        End Function</p>
<p>        Public Function CreateSHA512Hash(ByRef input As String) As Byte()<br />
            Dim hash As Byte() = Nothing<br />
            Try<br />
                Dim bytes() As Byte = _txt_converter.GetBytes(input)<br />
                Dim objSHA As New SHA512CryptoServiceProvider<br />
                hash = objSHA.ComputeHash(bytes)<br />
                objSHA = Nothing<br />
            Catch</p>
<p>            End Try<br />
            Return hash</p>
<p>        End Function</p>
<p>        Private Sub StripNullAtEnd(ByRef input_string As String)</p>
<p>            Dim nullchar As Char = Convert.ToChar(0) &#8216;&amp;H0<br />
            If input_string.Length &gt; 0 And input_string.EndsWith(nullchar.ToString) Then<br />
                Dim n As Long<br />
                For n = input_string.Length &#8211; 1 To 0 Step -1<br />
                    If input_string.Chars(n) &lt;&gt; nullchar Then<br />
                        input_string = input_string.Substring(0, n + 1)<br />
                        Exit For<br />
                    End If<br />
                Next<br />
            End If<br />
            Convert.ToString(input_string)</p>
<p>        End Sub</p>
<p>    End Class</p>
<p>End Namespace</p>
[/sourcecode]
]]></content:encoded>
					
					<wfw:commentRss>https://www.maxvergelli.com/cryptography-helper-class-for-net-framework-4/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">30</post-id>	</item>
	</channel>
</rss>
