<?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>crypto &#8211; Sanity Free Coding</title>
	<atom:link href="http://sanity-free.org/tag/crypto/feed" rel="self" type="application/rss+xml" />
	<link>http://sanity-free.org</link>
	<description>Methods to the Madness</description>
	<lastBuildDate>Thu, 20 Nov 2025 04:27:46 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>http://sanity-free.org/wp-content/uploads/2025/10/sanity-free-512-150x150.jpg</url>
	<title>crypto &#8211; Sanity Free Coding</title>
	<link>http://sanity-free.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Triple DES between PHP and C#</title>
		<link>http://sanity-free.org/triple_des_between_php_and_csharp.html</link>
		
		<dc:creator><![CDATA[steve]]></dc:creator>
		<pubDate>Wed, 27 Sep 2006 18:00:01 +0000</pubDate>
				<category><![CDATA[C# Articles]]></category>
		<category><![CDATA[PHP Articles]]></category>
		<category><![CDATA[crossplatform]]></category>
		<category><![CDATA[crypto]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">http://dev.sanity-free.org/?p=205</guid>

					<description><![CDATA[The past while at work I&#8217;ve been working through some annoyingly over complicated encryption issues. The problem is not that Triple DES is all that complicated or annoying, it&#8217;s just that when you have 2 different technologies (one doing the encrypting and one doing the decrypting) at work; it can be frustrating to get anything [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>The past while at work I&#8217;ve been working through some annoyingly over complicated encryption issues. The problem is not that Triple DES is all that complicated or annoying, it&#8217;s just that when you have 2 different technologies (one doing the encrypting and one doing the decrypting) at work; it can be frustrating to get anything accomplished.<br><br>Our issues stemmed around the fact that we were using .NET 1.1 and they were using Java (with the standard crypto providers). There are a few subtleties between Microsoft&#8217;s crypto providers and Java&#8217;s. .NET provides 3 (OK, really only 2) Padding modes, and Java provides like 5, but they don&#8217;t provide any in common. One easy padding mode is to append 0x00 bytes to the end of the final block to make it an even 64 bits wide. The Java provider didn&#8217;t have this, but its easy enough to add ( by appending null char&#8217;s &#8216;\0&#8217; to the end of the string then calling <code>getBytes()</code> ). So that&#8217;s the route we took. After overcoming a few problems with &#8220;How do we encode our bytes used for the key and IV and still be compatible&#8221; we were off and running.<br><br>That made me wonder how compatible PHP and .NET&#8217;s 3DES were. Since I didn&#8217;t see any &#8220;Padding Mode&#8221; for PHP&#8217;s, I simply hand coded the padding the same way we did with the Java code.<br><br>Here&#8217;s my PHP script:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers cbp-highlight-hover" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292eff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(16, 41, 67, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#ffffff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#24292eff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>&lt;?php

if(!isset($_POST&#91;'op'&#93;)) {
    ?>
&lt;form id="form1" name="form1" method="post" action="">
  enter text
  &lt;input name="data" type="text" />
  &lt;input type="hidden" value="op" name="op" />
  &lt;input type="submit" name="Submit" value="Submit" />
&lt;/form>
    &lt;?php
}else {
    $buffer = $_POST&#91;'data'&#93;; 
    // get the amount of bytes to pad
    $extra = 8 - (strlen($buffer) % 8);
    // add the zero padding
    if($extra > 0) {
        for($i = 0; $i &lt; $extra; $i++) {
            $buffer .= "\0";
        }
    }
    // very simple ASCII key and IV
    $key = "passwordDR0wSS@P6660juht";
    $iv = "password";
    // hex encode the return value
    echo "Result: ".bin2hex(mcrypt_cbc(MCRYPT_3DES, $key, $buffer, MCRYPT_ENCRYPT, $iv));	
}
?></textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki min-light" style="background-color: #ffffff" tabindex="0"><code><span class="line"><span style="color: #D32F2F">&lt;?</span><span style="color: #24292EFF">php</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D32F2F">if</span><span style="color: #24292EFF">(</span><span style="color: #D32F2F">!</span><span style="color: #6F42C1">isset</span><span style="color: #212121">(</span><span style="color: #6F42C1">$_POST&#91;</span><span style="color: #22863A">&#39;op&#39;</span><span style="color: #6F42C1">&#93;</span><span style="color: #212121">)</span><span style="color: #24292EFF">) {</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #D32F2F">?&gt;</span></span>
<span class="line"><span style="color: #D32F2F">&lt;</span><span style="color: #24292EFF">form id</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;form1&quot;</span><span style="color: #24292EFF"> name</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;form1&quot;</span><span style="color: #24292EFF"> method</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;post&quot;</span><span style="color: #24292EFF"> action</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;&quot;</span><span style="color: #D32F2F">&gt;</span></span>
<span class="line"><span style="color: #24292EFF">  enter text</span></span>
<span class="line"><span style="color: #24292EFF">  </span><span style="color: #D32F2F">&lt;</span><span style="color: #24292EFF">input name</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;data&quot;</span><span style="color: #24292EFF"> type</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;text&quot;</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">/&gt;</span></span>
<span class="line"><span style="color: #24292EFF">  </span><span style="color: #D32F2F">&lt;</span><span style="color: #24292EFF">input type</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;hidden&quot;</span><span style="color: #24292EFF"> value</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;op&quot;</span><span style="color: #24292EFF"> name</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;op&quot;</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">/&gt;</span></span>
<span class="line"><span style="color: #24292EFF">  </span><span style="color: #D32F2F">&lt;</span><span style="color: #24292EFF">input type</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;submit&quot;</span><span style="color: #24292EFF"> name</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;Submit&quot;</span><span style="color: #24292EFF"> value</span><span style="color: #D32F2F">=</span><span style="color: #22863A">&quot;Submit&quot;</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">/&gt;</span></span>
<span class="line"><span style="color: #D32F2F">&lt;/</span><span style="color: #24292EFF">form</span><span style="color: #D32F2F">&gt;</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #D32F2F">&lt;?</span><span style="color: #24292EFF">php</span></span>
<span class="line"><span style="color: #24292EFF">}</span><span style="color: #D32F2F">else</span><span style="color: #24292EFF"> {</span></span>
<span class="line"><span style="color: #24292EFF">    $buffer </span><span style="color: #D32F2F">=</span><span style="color: #24292EFF"> $_POST&#91;</span><span style="color: #22863A">&#39;data&#39;</span><span style="color: #24292EFF">&#93;; </span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #C2C3C5">// get the amount of bytes to pad</span></span>
<span class="line"><span style="color: #24292EFF">    $extra </span><span style="color: #D32F2F">=</span><span style="color: #24292EFF"> </span><span style="color: #1976D2">8</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">-</span><span style="color: #24292EFF"> (</span><span style="color: #6F42C1">strlen</span><span style="color: #212121">(</span><span style="color: #6F42C1">$buffer</span><span style="color: #212121">)</span><span style="color: #24292EFF"> </span><span style="color: #D32F2F">%</span><span style="color: #24292EFF"> </span><span style="color: #1976D2">8</span><span style="color: #24292EFF">);</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #C2C3C5">// add the zero padding</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #D32F2F">if</span><span style="color: #24292EFF">($extra </span><span style="color: #D32F2F">&gt;</span><span style="color: #24292EFF"> </span><span style="color: #1976D2">0</span><span style="color: #24292EFF">) {</span></span>
<span class="line"><span style="color: #24292EFF">        </span><span style="color: #D32F2F">for</span><span style="color: #24292EFF">($i </span><span style="color: #D32F2F">=</span><span style="color: #24292EFF"> </span><span style="color: #1976D2">0</span><span style="color: #24292EFF">; $i </span><span style="color: #D32F2F">&lt;</span><span style="color: #24292EFF"> $extra; $i</span><span style="color: #D32F2F">++</span><span style="color: #24292EFF">) {</span></span>
<span class="line"><span style="color: #24292EFF">            $buffer </span><span style="color: #D32F2F">.=</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&quot;\0&quot;</span><span style="color: #24292EFF">;</span></span>
<span class="line"><span style="color: #24292EFF">        }</span></span>
<span class="line"><span style="color: #24292EFF">    }</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #C2C3C5">// very simple ASCII key and IV</span></span>
<span class="line"><span style="color: #24292EFF">    $key </span><span style="color: #D32F2F">=</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&quot;passwordDR0wSS@P6660juht&quot;</span><span style="color: #24292EFF">;</span></span>
<span class="line"><span style="color: #24292EFF">    $iv </span><span style="color: #D32F2F">=</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&quot;password&quot;</span><span style="color: #24292EFF">;</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #C2C3C5">// hex encode the return value</span></span>
<span class="line"><span style="color: #24292EFF">    </span><span style="color: #6F42C1">echo</span><span style="color: #24292EFF"> </span><span style="color: #22863A">&quot;Result: &quot;</span><span style="color: #D32F2F">.</span><span style="color: #6F42C1">bin2hex</span><span style="color: #212121">(</span><span style="color: #6F42C1">mcrypt_cbc</span><span style="color: #212121">(</span><span style="color: #1976D2">MCRYPT_3DES</span><span style="color: #212121">,</span><span style="color: #6F42C1"> $key</span><span style="color: #212121">,</span><span style="color: #6F42C1"> $buffer</span><span style="color: #212121">,</span><span style="color: #6F42C1"> </span><span style="color: #1976D2">MCRYPT_ENCRYPT</span><span style="color: #212121">,</span><span style="color: #6F42C1"> $iv</span><span style="color: #212121">))</span><span style="color: #24292EFF">;	</span></span>
<span class="line"><span style="color: #24292EFF">}</span></span>
<span class="line"><span style="color: #D32F2F">?&gt;</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#ffffff;color:#2f363c;font-size:12px;line-height:1;position:relative">PHP</span></div>



<figure class="wp-block-image size-large"><img decoding="async" src="/wp-content/uploads/2025/10/html_input.gif" alt=""/></figure>



<p>Then entered in my text (in this case I used &#8220;Test&#8221; in both)<br><br>Then I wrote up a sample in .NET to try to see if we had to massage the data or not:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#000000;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FFFFFF"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#000000;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;

namespace TestBed {
    class Program {
        static void Main(string[] args) {
            byte[] key = Encoding.ASCII.GetBytes("passwordDR0wSS@P6660juht");
            byte[] iv = Encoding.ASCII.GetBytes("password");
            byte[] data = Encoding.ASCII.GetBytes("Test");
            byte[] enc = new byte&#91;0&#93;;
            TripleDES tdes = TripleDES.Create();
            tdes.IV = iv;
            tdes.Key = key;
            tdes.Mode = CipherMode.CBC;
            tdes.Padding = PaddingMode.Zeros;
            ICryptoTransform ict = tdes.CreateEncryptor();
            enc = ict.TransformFinalBlock(data, 0, data.Length);
            Console.WriteLine(Bin2Hex(enc));
            Console.ReadLine();
        }
        // my bin2hex implementation		
        static string Bin2Hex(byte[] bin) {
            StringBuilder sb = new StringBuilder(bin.Length * 2);
            foreach(byte b in bin) {
                sb.Append(b.ToString("x").PadLeft(2, '0'));
            }
            return sb.ToString();
        }
    }
}</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki light-plus" style="background-color: #FFFFFF" tabindex="0"><code><span class="line"><span style="color: #AF00DB">using</span><span style="color: #000000"> </span><span style="color: #267F99">System</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #AF00DB">using</span><span style="color: #000000"> </span><span style="color: #267F99">System</span><span style="color: #000000">.</span><span style="color: #267F99">Security</span><span style="color: #000000">.</span><span style="color: #267F99">Cryptography</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #AF00DB">using</span><span style="color: #000000"> </span><span style="color: #267F99">System</span><span style="color: #000000">.</span><span style="color: #267F99">Text</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #AF00DB">using</span><span style="color: #000000"> </span><span style="color: #267F99">System</span><span style="color: #000000">.</span><span style="color: #267F99">IO</span><span style="color: #000000">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #0000FF">namespace</span><span style="color: #000000"> </span><span style="color: #267F99">TestBed</span><span style="color: #000000"> {</span></span>
<span class="line"><span style="color: #000000">    </span><span style="color: #0000FF">class</span><span style="color: #000000"> </span><span style="color: #267F99">Program</span><span style="color: #000000"> {</span></span>
<span class="line"><span style="color: #000000">        </span><span style="color: #0000FF">static</span><span style="color: #000000"> </span><span style="color: #0000FF">void</span><span style="color: #000000"> </span><span style="color: #795E26">Main</span><span style="color: #000000">(</span><span style="color: #0000FF">string</span><span style="color: #000000">[] </span><span style="color: #001080">args</span><span style="color: #000000">) {</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #0000FF">byte</span><span style="color: #000000">[] </span><span style="color: #001080">key</span><span style="color: #000000"> = </span><span style="color: #001080">Encoding</span><span style="color: #000000">.</span><span style="color: #001080">ASCII</span><span style="color: #000000">.</span><span style="color: #795E26">GetBytes</span><span style="color: #000000">(</span><span style="color: #A31515">&quot;passwordDR0wSS@P6660juht&quot;</span><span style="color: #000000">);</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #0000FF">byte</span><span style="color: #000000">[] </span><span style="color: #001080">iv</span><span style="color: #000000"> = </span><span style="color: #001080">Encoding</span><span style="color: #000000">.</span><span style="color: #001080">ASCII</span><span style="color: #000000">.</span><span style="color: #795E26">GetBytes</span><span style="color: #000000">(</span><span style="color: #A31515">&quot;password&quot;</span><span style="color: #000000">);</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #0000FF">byte</span><span style="color: #000000">[] </span><span style="color: #001080">data</span><span style="color: #000000"> = </span><span style="color: #001080">Encoding</span><span style="color: #000000">.</span><span style="color: #001080">ASCII</span><span style="color: #000000">.</span><span style="color: #795E26">GetBytes</span><span style="color: #000000">(</span><span style="color: #A31515">&quot;Test&quot;</span><span style="color: #000000">);</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #0000FF">byte</span><span style="color: #000000">[] </span><span style="color: #001080">enc</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #0000FF">byte</span><span style="color: #000000">&#91;</span><span style="color: #098658">0</span><span style="color: #000000">&#93;;</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #267F99">TripleDES</span><span style="color: #000000"> </span><span style="color: #001080">tdes</span><span style="color: #000000"> = </span><span style="color: #001080">TripleDES</span><span style="color: #000000">.</span><span style="color: #795E26">Create</span><span style="color: #000000">();</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #001080">tdes</span><span style="color: #000000">.</span><span style="color: #001080">IV</span><span style="color: #000000"> = </span><span style="color: #001080">iv</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #001080">tdes</span><span style="color: #000000">.</span><span style="color: #001080">Key</span><span style="color: #000000"> = </span><span style="color: #001080">key</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #001080">tdes</span><span style="color: #000000">.</span><span style="color: #001080">Mode</span><span style="color: #000000"> = </span><span style="color: #001080">CipherMode</span><span style="color: #000000">.</span><span style="color: #001080">CBC</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #001080">tdes</span><span style="color: #000000">.</span><span style="color: #001080">Padding</span><span style="color: #000000"> = </span><span style="color: #001080">PaddingMode</span><span style="color: #000000">.</span><span style="color: #001080">Zeros</span><span style="color: #000000">;</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #267F99">ICryptoTransform</span><span style="color: #000000"> </span><span style="color: #001080">ict</span><span style="color: #000000"> = </span><span style="color: #001080">tdes</span><span style="color: #000000">.</span><span style="color: #795E26">CreateEncryptor</span><span style="color: #000000">();</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #001080">enc</span><span style="color: #000000"> = </span><span style="color: #001080">ict</span><span style="color: #000000">.</span><span style="color: #795E26">TransformFinalBlock</span><span style="color: #000000">(</span><span style="color: #001080">data</span><span style="color: #000000">, </span><span style="color: #098658">0</span><span style="color: #000000">, </span><span style="color: #001080">data</span><span style="color: #000000">.</span><span style="color: #001080">Length</span><span style="color: #000000">);</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #001080">Console</span><span style="color: #000000">.</span><span style="color: #795E26">WriteLine</span><span style="color: #000000">(</span><span style="color: #795E26">Bin2Hex</span><span style="color: #000000">(</span><span style="color: #001080">enc</span><span style="color: #000000">));</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #001080">Console</span><span style="color: #000000">.</span><span style="color: #795E26">ReadLine</span><span style="color: #000000">();</span></span>
<span class="line"><span style="color: #000000">        }</span></span>
<span class="line"><span style="color: #008000">        // my bin2hex implementation		</span></span>
<span class="line"><span style="color: #000000">        </span><span style="color: #0000FF">static</span><span style="color: #000000"> </span><span style="color: #0000FF">string</span><span style="color: #000000"> </span><span style="color: #795E26">Bin2Hex</span><span style="color: #000000">(</span><span style="color: #0000FF">byte</span><span style="color: #000000">[] </span><span style="color: #001080">bin</span><span style="color: #000000">) {</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #267F99">StringBuilder</span><span style="color: #000000"> </span><span style="color: #001080">sb</span><span style="color: #000000"> = </span><span style="color: #0000FF">new</span><span style="color: #000000"> </span><span style="color: #267F99">StringBuilder</span><span style="color: #000000">(</span><span style="color: #001080">bin</span><span style="color: #000000">.</span><span style="color: #001080">Length</span><span style="color: #000000"> * </span><span style="color: #098658">2</span><span style="color: #000000">);</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #AF00DB">foreach</span><span style="color: #000000">(</span><span style="color: #0000FF">byte</span><span style="color: #000000"> </span><span style="color: #001080">b</span><span style="color: #000000"> </span><span style="color: #AF00DB">in</span><span style="color: #000000"> </span><span style="color: #001080">bin</span><span style="color: #000000">) {</span></span>
<span class="line"><span style="color: #000000">                </span><span style="color: #001080">sb</span><span style="color: #000000">.</span><span style="color: #795E26">Append</span><span style="color: #000000">(</span><span style="color: #001080">b</span><span style="color: #000000">.</span><span style="color: #795E26">ToString</span><span style="color: #000000">(</span><span style="color: #A31515">&quot;x&quot;</span><span style="color: #000000">).</span><span style="color: #795E26">PadLeft</span><span style="color: #000000">(</span><span style="color: #098658">2</span><span style="color: #000000">, </span><span style="color: #A31515">&#39;0&#39;</span><span style="color: #000000">));</span></span>
<span class="line"><span style="color: #000000">            }</span></span>
<span class="line"><span style="color: #000000">            </span><span style="color: #AF00DB">return</span><span style="color: #000000"> </span><span style="color: #001080">sb</span><span style="color: #000000">.</span><span style="color: #795E26">ToString</span><span style="color: #000000">();</span></span>
<span class="line"><span style="color: #000000">        }</span></span>
<span class="line"><span style="color: #000000">    }</span></span>
<span class="line"><span style="color: #000000">}</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#FFFFFF;color:#0d0d0d;font-size:12px;line-height:1;position:relative">C#</span></div>



<p>&#8220;<code>47794945c0230c3d</code>&#8221; Wouldn&#8217;t you know it! It worked like a charm!<br><br>Would have been nice if the Java -&gt; .NET solution had been that easy.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
